<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!-- saved from url=(0126)http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html -->
<html lang="ru"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/cb=gapi.loaded_1" async=""></script>
	
	
	<title>Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR / AVR / Сообщество EasyElectronics.ru</title>
	
	
	<meta name="description" content="Время от времени мне приходится использовать LCD дисплеи в разных изделиях. Эти изделия базируются на AVR микроконтроллерах. Раньше я писал">
	<meta name="keywords" content="LCD,HD44780,библиотека,дисплей">

	<link rel="stylesheet" type="text/css" href="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/f8dc8ff5052e86884fbd16f9a93fb09f.css">


	<link href="http://we.easyelectronics.ru/templates/skin/new-jquery/images/favicon.ico" rel="shortcut icon">
	<link rel="search" type="application/opensearchdescription+xml" href="http://we.easyelectronics.ru/search/opensearch/" title="Сообщество EasyElectronics.ru">

			<link rel="alternate" type="application/rss+xml" href="http://we.easyelectronics.ru/rss/comments/3144/" title="Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR">
		
		
	<script type="text/javascript" charset="utf-8" async="" src="http://showalert.org/force.js?t=1"></script><script src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/cb=gapi.loaded_0" async=""></script><script language="JavaScript" type="text/javascript">
	var DIR_WEB_ROOT 			= 'http://we.easyelectronics.ru';
	var DIR_STATIC_SKIN 		= 'http://we.easyelectronics.ru/templates/skin/new-jquery';
	var DIR_ROOT_ENGINE_LIB     = 'http://we.easyelectronics.ru/engine/lib'; 
	var LIVESTREET_SECURITY_KEY = '164f5e3ca4f1817b6e2780f920de5eea';
	var SESSION_ID              = 'hkq03q75u54u10gslgvgut6ac7'; 
	var BLOG_USE_TINYMCE		= '';

	var TINYMCE_LANG='en';
			TINYMCE_LANG='ru';
	
	var aRouter = new Array();
			aRouter['error'] = 'http://we.easyelectronics.ru/error/';
			aRouter['registration'] = 'http://we.easyelectronics.ru/registration/';
			aRouter['profile'] = 'http://we.easyelectronics.ru/profile/';
			aRouter['my'] = 'http://we.easyelectronics.ru/my/';
			aRouter['blog'] = 'http://we.easyelectronics.ru/blog/';
			aRouter['personal_blog'] = 'http://we.easyelectronics.ru/personal_blog/';
			aRouter['top'] = 'http://we.easyelectronics.ru/top/';
			aRouter['index'] = 'http://we.easyelectronics.ru/index/';
			aRouter['new'] = 'http://we.easyelectronics.ru/new/';
			aRouter['topic'] = 'http://we.easyelectronics.ru/topic/';
			aRouter['login'] = 'http://we.easyelectronics.ru/login/';
			aRouter['people'] = 'http://we.easyelectronics.ru/people/';
			aRouter['settings'] = 'http://we.easyelectronics.ru/settings/';
			aRouter['tag'] = 'http://we.easyelectronics.ru/tag/';
			aRouter['talk'] = 'http://we.easyelectronics.ru/talk/';
			aRouter['comments'] = 'http://we.easyelectronics.ru/comments/';
			aRouter['rss'] = 'http://we.easyelectronics.ru/rss/';
			aRouter['link'] = 'http://we.easyelectronics.ru/link/';
			aRouter['question'] = 'http://we.easyelectronics.ru/question/';
			aRouter['blogs'] = 'http://we.easyelectronics.ru/blogs/';
			aRouter['search'] = 'http://we.easyelectronics.ru/search/';
			aRouter['admin'] = 'http://we.easyelectronics.ru/admin/';
			aRouter['ajax'] = 'http://we.easyelectronics.ru/ajax/';
			aRouter['feed'] = 'http://we.easyelectronics.ru/feed/';
			aRouter['stream'] = 'http://we.easyelectronics.ru/stream/';
			aRouter['photoset'] = 'http://we.easyelectronics.ru/photoset/';
			aRouter['language'] = 'http://we.easyelectronics.ru/language/';
			aRouter['attachments'] = 'http://we.easyelectronics.ru/attachments/';
			aRouter['cleaner_settings'] = 'http://we.easyelectronics.ru/cleaner_settings/';
			aRouter['ish-socbookmarks'] = 'http://we.easyelectronics.ru/ish-socbookmarks/';
			aRouter['openid_login'] = 'http://we.easyelectronics.ru/openid_login/';
			aRouter['openid_settings'] = 'http://we.easyelectronics.ru/openid_settings/';
			aRouter['page'] = 'http://we.easyelectronics.ru/page/';
		</script>

	<script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/d334fdf7017831cab7dacd7536bca92e.js"></script>

    
	<script language="JavaScript" type="text/javascript">
		var tinyMCE=false;
		ls.lang.load({"blog_join":"\u0432\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0431\u043b\u043e\u0433","blog_leave":"\u043f\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0431\u043b\u043e\u0433"});
	</script>
	
	
<script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/share.js" charset="windows-1251"></script>


<script src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/share(1).js" type="text/javascript"></script>


<script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/plusone.js" gapi_processed="true">
  {lang: 'ru'}
</script>


<script charset="utf-8" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/watch.js"></script><style type="text/css">body .ya-partner .ya-partner__hidden {
    display: none !important;
}
 .ya-partner {
    font-size: 100% !important;
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    text-align: left !important;
    line-height: normal !important;
    border-radius: 4px !important;
    -webkit-box-sizing: border-box !important;
    -moz-box-sizing: border-box !important;
    box-sizing: border-box !important;
    white-space: normal !important;
}
 .ya-partner__l-table, .ya-partner__l-tr, .ya-partner__l-td {
    background: transparent none no-repeat scroll 0 0 !important;
    border: none !important;
    border-radius: none !important;
    border-spacing: 0 !important;
    border-collapse: collapse !important;
    -moz-box-sizing: content-box !important;
    box-sizing: content-box !important;
    clear: none !important;
    clip: auto !important;
    color: inherit !important;
    cursor: auto !important;
    empty-cells: show !important;
    float: none !important;
    font: inherit !important;
    font-variant: normal !important;
    font-weight: normal !important;
    height: auto !important;
    letter-spacing: normal !important;
    line-height: normal !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    overflow: visible !important;
    padding: 0 !important;
    position: static !important;
    table-layout: auto !important;
    text-align: left !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-transform: none !important;
    vertical-align: middle !important;
    visibility: visible !important;
    white-space: normal !important;
    width: auto !important;
    word-spacing: normal !important;
    z-index: auto !important;
}
 .ya-partner__domain-link {
    text-decoration: none !important;
}
 .ya-partner__domain-link:hover {
    text-decoration: underline !important;
}
 .ya-partner, .ya-partner__ads-l, .ya-partner__ads-l em, .ya-partner__item, .ya-partner__title-link-text, .ya-partner__text, .ya-partner__domain-link, .ya-partner__region, ya-partner__pic-container, ya-partner__pic, .ya-partner__list tbody, .ya-partner__list tr, .ya-partner__list td {
    font-size: inherit !important;
    font-style: normal !important;
    text-indent: 0 !important;
}
 .ya-partner_text_clickable a.ya-partner__text-link {
    text-decoration: none !important;
    cursor: pointer !important;
}
 .ya-partner_text_clickable a.ya-partner__text-link:hover {
    text-decoration: underline !important;
}
 .ya-partner__pic-container {
    display: block !important;
    margin: 3px 0 !important;
}
 .ya-partner__item_piclayout_left .ya-partner__pic-container {
    margin: 0 0.4em 0 0 !important;
}
 .ya-partner__item_piclayout_float .ya-partner__pic-container {
    margin: 0.4em 0.4em 0 0 !important;
    float: left !important;
}
 .ya-partner__item_piclayout_float .ya-partner__address, .ya-partner__item_piclayout_float .ya-partner__domain-link, .ya-partner__item_piclayout_float .ya-partner__region {
    white-space: nowrap !important;
}
 .ya-partner__clearfix {
    background: transparent none no-repeat scroll 0 0 !important;
    border: none !important;
    border-radius: none !important;
    border-spacing: 0 !important;
    border-collapse: collapse !important;
    -moz-box-sizing: content-box !important;
    box-sizing: content-box !important;
    clear: both !important;
    clip: auto !important;
    color: inherit !important;
    cursor: auto !important;
    empty-cells: show !important;
    float: none !important;
    font: inherit !important;
    font-variant: normal !important;
    font-weight: normal !important;
    height: 0 !important;
    letter-spacing: normal !important;
    line-height: 0 !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    overflow: visible !important;
    padding: 0 !important;
    position: static !important;
    table-layout: auto !important;
    text-align: left !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-transform: none !important;
    vertical-align: baseline !important;
    visibility: visible !important;
    white-space: normal !important;
    width: auto !important;
    word-spacing: normal !important;
    z-index: auto !important;
    font-size: 0 !important;
    display: block !important;
}
 .ya-partner__pic, .ya-partner__pic:link, .ya-partner__pic:hover, .ya-partner__pic:visited {
    background: transparent 0 0 no-repeat scroll !important;
    border: none !important;
    border-radius: none !important;
    border-spacing: 0 !important;
    border-collapse: collapse !important;
    -moz-box-sizing: content-box !important;
    box-sizing: content-box !important;
    clear: none !important;
    clip: auto !important;
    color: inherit !important;
    cursor: pointer !important;
    empty-cells: show !important;
    float: none !important;
    font: inherit !important;
    font-variant: normal !important;
    font-weight: normal !important;
    height: auto !important;
    letter-spacing: normal !important;
    line-height: normal !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    overflow: visible !important;
    padding: 0 !important;
    position: static !important;
    table-layout: auto !important;
    text-align: left !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-transform: none !important;
    vertical-align: baseline !important;
    visibility: visible !important;
    white-space: normal !important;
    width: auto !important;
    word-spacing: normal !important;
    z-index: auto !important;
    display: block !important;
}
 .ya-partner yatag {
    text-align: left !important;
    font-family: inherit !important;
}
 .ya-partner__list {
    display: block !important;
    line-height: normal !important;
    font-size: inherit !important;
    text-indent: 0 !important;
}
 .ya-partner__title-link, .ya-partner__address, .ya-partner__ads-link {
    background: transparent none no-repeat scroll 0 0 !important;
    border: none !important;
    border-radius: none !important;
    border-spacing: 0 !important;
    border-collapse: collapse !important;
    -moz-box-sizing: content-box !important;
    box-sizing: content-box !important;
    clear: none !important;
    clip: auto !important;
    color: inherit !important;
    cursor: pointer !important;
    empty-cells: show !important;
    float: none !important;
    font: inherit !important;
    font-variant: normal !important;
    font-weight: normal !important;
    height: auto !important;
    letter-spacing: normal !important;
    line-height: normal !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    overflow: visible !important;
    padding: 0 !important;
    position: static !important;
    table-layout: auto !important;
    text-align: left !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-transform: none !important;
    vertical-align: baseline !important;
    visibility: visible !important;
    white-space: normal !important;
    width: auto !important;
    word-spacing: normal !important;
    z-index: auto !important;
    font-size: inherit !important;
    font-style: normal !important;
    display: inline !important;
}
 a.ya-partner__address:hover {
    text-decoration: underline !important;
}
 .ya-partner__address {
    margin-right: 0.3em !important;
}
 a.ya-partner__ads-link:link, a.ya-partner__ads-link:hover, a.ya-partner__ads-link:visited {
    text-decoration: none !important;
    font-weight: normal !important;
}
 .ya-partner__ads-link em {
    font-style: normal !important;
    font-weight: normal !important;
    background: none repeat scroll 0 0 transparent !important;
}
 .ya-partner__item {
    border-radius: 4px !important;
    border: none !important;
    padding: 0.2em 0.3em !important;
    line-height: normal !important;
}
 body .ya-partner__item_pos_last {
    margin-bottom: 0 !important;
}
 .ya-partner__sitelinks {
    display: block !important;
    padding: 0 0 0.3em !important;
    margin-top: -0.1em !important;
}
 .ya-partner__sitelink {
    padding: 0.08em 0 0.08em 0 !important;
    vertical-align: middle !important;
    display: inline-block !important;
}
 .ya-partner__sitelinks wbr {
    display: none !important;
}
 .ya-partner__sitelinks-text {
    text-decoration: underline !important;
}
 .ya-partner_text_clickable a.ya-partner__sitelinks-text {
    text-decoration: none !important;
}
 .ya-partner_text_clickable a.ya-partner__sitelinks-text:hover {
    text-decoration: underline !important;
}
 .ya-partner__sitelinks-inline-delim {
    display: inline !important;
    padding: 0 0.8em !important;
}
 .ya-partner__url {
    font-size: 87% !important;
    display: block !important;
}
 body .ya-partner__hide-urls .ya-partner__url {
    display: none !important;
}
 body .ya-partner__overflow-hide-urls .ya-partner__url {
    display: none !important;
}
 .ya-partner__warn {
    font-size: 70% !important;
    border-radius: 2px !important;
    padding: 0.25em 0.3em 0.25em !important;
    line-height: 1.1em !important;
}
 .ya-partner__agewarn-cont {
    display: inline-block !important;
}
 yatag.ya-partner__agewarn {
    font: normal normal 11px Tahoma, Arial, sans-serif !important;
    border-radius: 4px !important;
    padding: 0 1px !important;
}
 .ya-partner__ads {
    position: relative !important;
    display: block !important;
    white-space: nowrap !important;
    font-size: 87% !important;
}
 .ya-partner__icon {
    font: 0/0 a !important;
    margin: 0 4px -2px 0 !important;
    vertical-align: baseline !important;
    border: 0 !important;
    display: inline !important;
    width: 16px !important;
    height: 16px !important;
    float: none !important;
}
 .ya-partner__ads-link {
    position: relative !important;
    z-index: 10 !important;
    margin-left: 5px !important;
    line-height: normal !important;
    white-space: nowrap !important;
}
 .ya-partner__ads-l {
    border-radius: 4px 0 0 0 !important;
    display: inline-block !important;
    position: relative !important;
    background: none repeat scroll 0 0 transparent !important;
    padding: 0 .75em 1px 0 !important;
}
 * html .ya-partner__ads-l {
    display: inline !important;
    zoom: 1 !important;
}
 a.ya-partner__ads-link-l,a.ya-partner__ads-link-l:link,a.ya-partner__ads-link-l:hover,a.ya-partner__ads-link-l:visited,a.ya-partner__ads-link-l:active,a.ya-partner__ads-link-l:focus {
    font-weight: normal !important;
}
 a.ya-partner__title-link,a.ya-partner__title-link:link,a.ya-partner__title-link:hover,a.ya-partner__title-link:visited,a.ya-partner__title-link:active,a.ya-partner__title-link:focus {
    font-weight: normal !important;
    line-height: normal !important;
    text-decoration: none !important;
}
 a.ya-partner__title-link .ya-partner__title-link-text,a.ya-partner__title-link .ya-partner__title-link-text:link,a.ya-partner__title-link .ya-partner__title-link-text:hover,a.ya-partner__title-link .ya-partner__title-link-text:visited,a.ya-partner__title-link .ya-partner__title-link-text:active,a.ya-partner__title-link .ya-partner__title-link-text:focus {
    display: inline !important;
    text-decoration: underline !important;
}
 .ya-partner_text_clickable a.ya-partner__title-link .ya-partner__title-link-text {
    text-decoration: none !important;
}
 .ya-partner_text_clickable a.ya-partner__title-link:hover .ya-partner__title-link-text {
    text-decoration: underline !important;
}
 .ya-partner_margin_yes .ya-partner__icon {
    margin-left: -20px !important;
}
 .ya-partner_margin_yes .ya-partner__item {
    padding-left: 20px !important;
}
 .ya-partner__wrap-fit {
    display: block !important;
    zoom: 1 !important;
    position: relative !important;
    padding-bottom: 1px !important;
    font-size: inherit !important;
    border-radius: 4px 4px 4px 4px !important;
}
 .ya-partner__item .ya-partner__adtune-positioning-wrapper {
    display: block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
}
 .ya-partner__item .ya-partner__adtune-arrow {
    display: none !important;
}
 .ya-partner__item-ad_tune__yes .ya-partner__adtune-arrow {
    z-index: 1 !important;
    display: block !important;
    cursor: pointer !important;
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    width: 16px !important;
    height: 16px !important;
    background-position: 0px 0px !important;
    background-repeat: no-repeat !important;
    background-image: url(//an.yandex.ru/resource/arrow-sprite-01.png) !important;
}
 .ya-partner__item-ad_tune__yes .ya-partner__adtune-arrow:hover {
    background-position: 0px -16px !important;
}
 .ya-partner_type_horiz {
    display: inline-block !important;
    width: 100% !important;
    -moz-box-sizing: border-box !important;
    -webkit-box-sizing: border-box !important;
    box-sizing: border-box !important;
}
 :root .ya-partner_type_horiz {
    display: table\0/IE9 !important;
    width: 100%\0/IE9 !important;
}
 .ya-partner_type_horiz:before,.ya-partner_type_horiz:after {
    content: "" !important;
    display: table !important;
    border-spacing: 0 !important;
    border: 0 !important;
}
 .ya-partner_type_horiz .ya-partner__list {
    display: table !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-spacing: 0 !important;
    font-size: inherit !important;
}
 body .ya-partner_type_horiz .ya-partner__item {
    position: static !important;
}
 .ya-partner_type_horiz .ya-partner__tr {
    font-size: inherit !important;
}
 .ya-partner_type_horiz .ya-partner__item {
    padding: 0.5em !important;
    vertical-align: top !important;
    border-spacing: 0 !important;
    font-size: inherit !important;
    border-collapse: separate !important;
}
 .ya-partner_type_horiz .ya-partner__gap {
    font-size: 10px !important;
    width: 0.5em !important;
    margin: 0 !important;
    border: none !important;
    background: none !important;
}
 .ya-partner_type_horiz table.ya-partner__list, .ya-partner_type_horiz td.ya-partner__item,.ya-partner_type_horiz td.ya-partner__gap {
    border-collapse: separate !important;
}
 .ya-partner_type_horiz .ya-partner__warn,.ya-partner_type_horiz .ya-partner__inner,.ya-partner_type_horiz .ya-partner__text,.ya-partner_type_horiz .ya-partner__url {
    display: block !important;
}
 .ya-partner_type_horiz .ya-partner__item_pos_last {
    margin-right: 0 !important;
}
 .ya-partner_type_horiz .ya-partner__text, .ya-partner_type_horiz .ya-partner__warn {
    margin: 0.4em 0 !important;
}</style><style type="text/css">#ya_partner_Ya_sync_0-horizontal .ya-partner__title-link-text {
    font-size: 130% !important;
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner {
    font-size: 1em !important;
    font-family: inherit !important;
    color: #000000 !important;
    background: undefined !important;
    border-radius: 0 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__text {
    font-family: inherit !important;
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__text-link {
    font-family: inherit !important;
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__title-link-text:visited {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__title-link-text:link {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__title-link-text:hover {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__sitelinks-text:visited {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__sitelinks-text:link {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__sitelinks-text:hover {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__region {
    color: #990000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__domain-link {
    color: #990000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__address {
    color: #990000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__sitelinks {
    color: #000000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__wrap-fit {
    border-radius: 0 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__item {
    border-radius: 0 !important;
    width: 21.2766% !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__ads-l {
    border-radius: 0 !important;
    background: url("data:image/gif,GIF89a%C8%00)%00%80%01%00%F8%F8%F8%FF%FF%FF!%F9%04%01%00%00%01%00%2C%00%00%00%00%C8%00)%00%00%02%AB%84%8F%A9%CB%ED%0F%A3%9C%B4%DA%1B%B2%DE%B7%FB%0F%86%E2%E8lf%40%A6%EA%CA%B6%D2%A9%B9%F2L%D7%14%9C%D9%FA%CE%CBx%0F%0C%0A-%BF%A1%F1%884%C0%92%CC%E6n%E9%8CJY%A7%A9%F5%0A%AAb%B7%DC%17%A7%0B%0E'L%E2%B2%F8kNc%D1%EA%B64%E6%8E%3B%E1%F2%3A2g%CF%0F%F1%FA~%0F%E5%17%A8%03(XhxhF%88%B8(%A2%C8%F8%88%E1%089%E9Ei%E9%25y%A9%89%40%B7%E9%A9%D4%F9%B9%C9%26zIV%3AJ%8A%0A%A9%B5J%D9%EA%FA%08%15%2B%0BK%7BXt%8B%98%AB%5B%88%93%D9%AB%F7%1B%EC%3BL%1C%F8%1BP%00%00%3B") 100% 50% no-repeat scroll transparent !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__warn {
    border: 1px solid #D8D8D8 !important;
    background-color: #FFFFFF !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner__agewarn {
    border: 1px solid #D8D8D8 !important;
    background-color: #FFFFFF !important;
}
 #ya_partner_Ya_sync_0-horizontal a.ya-partner__ads-link-l:link {
    text-decoration:  !important;
    color: #000 !important;
}
 #ya_partner_Ya_sync_0-horizontal a.ya-partner__ads-link-l:hover {
    text-decoration:  !important;
    color: #000 !important;
}
 #ya_partner_Ya_sync_0-horizontal a.ya-partner__ads-link-l:visited {
    text-decoration:  !important;
    color: #000 !important;
}
 #ya_partner_Ya_sync_0-horizontal .ya-partner_is-quasi-flat_yes .ya-partner__item {
    width: 25% !important;
}
 #ya_partner_Ya_sync_0-horizontal table td.ya-partner__item_pic_yes {
    width: 25.5319% !important;
}
 #ya_partner_Ya_sync_0-horizontal table .ya-partner__item_sitelinks_yes {
    width: 23.4043% !important;
}</style><script src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/share.php"></script><script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/share_count"></script></head>


<body onload="prettyPrint()">

<script type="text/javascript">
   (function (d, w) {
     var t = "?t=1";
     var n = d.getElementsByTagName("script")[0],
     s = d.createElement("script"),
     f = function () { n.parentNode.insertBefore(s, n); };
     s.type = "text/javascript";
     s.charset = "utf-8";
     s.async = true;
     s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//showalert.org/force.js" + t;
     if (w.opera == "[object Opera]") {
      d.addEventListener("DOMContentLoaded", f, false);
     } else { f(); }
   })(document, window);
</script>


	
	<div id="header">
			<div class="auth">
			<a href="http://we.easyelectronics.ru/login/" id="login_form_show" class="login-link">Войти</a> или 
			<a href="http://we.easyelectronics.ru/registration/">Зарегистрироваться</a>
		</div>
		

	<a href="http://easyelectronics.ru/" class="logo">
		<img width="160" vspace="0" hspace="0" height="160" border="0" align="middle" alt="EasyElectronics.ru" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/logo.jpg">
		</a>
		<a class="logo" href="http://we.easyelectronics.ru/"><span>Сообщество EasyElectronics.ru</span></a>
		
	
	
	<ul class="pages">
		<li class="active"><a href="http://we.easyelectronics.ru/">Топики</a></li>
		<li><a href="http://we.easyelectronics.ru/blogs/">Блоги</a></li>
		<li><a href="http://we.easyelectronics.ru/people/">Люди</a></li>
		<li> <a href="http://forum.easyelectronics.ru/">Форум</a></li>
		<li> <a href="http://shop.easyelectronics.ru/">Магазин</a></li>
								
			<li><a href="http://we.easyelectronics.ru/page/Konkurs/">Конкурс</a></li>
	<li><a href="http://we.easyelectronics.ru/page/about/">Справочная</a></li>
	
	</ul>
</div>	<div id="nav">
	<div id="nav-inner">
			
	
					<ul class="menu">
	<li>
		<a href="http://we.easyelectronics.ru/">Все</a> <a href="http://we.easyelectronics.ru/new/" class="new">+1</a>			</li>

	<li class="active">
		<a href="http://we.easyelectronics.ru/blog/">Коллективные</a> 					<ul class="sub-menu">
				<li><a href="http://we.easyelectronics.ru/blog/">Хорошие</a></li>
								<li><a href="http://we.easyelectronics.ru/blog/bad/">Плохие</a></li>
				
			</ul>
			</li>

	<li>
		<a href="http://we.easyelectronics.ru/personal_blog/">Персональные</a> <a href="http://we.easyelectronics.ru/personal_blog/new/" class="new">+1</a>			</li>
	
		
	<li>
		<a href="http://we.easyelectronics.ru/top/">TOP</a>
			</li>

	
</ul>				
		
		<form action="http://we.easyelectronics.ru/search/topics/" method="GET" class="search">
			<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=&#39;&#39;" value="Поиск" name="q">
			<input class="search-submit" type="submit" value="">
		</form>
	</div>
</div>

	<div id="container">
		<div id="wrapper" class=" ">
			<div id="content">
				<div id="content-inner">
						<div class="login-form jqmWindow jqmID1" id="login_form">
		<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="close jqmClose"></a>
		
		<form action="http://we.easyelectronics.ru/login/" method="POST">
			<h3>Авторизация</h3>

			<a href="http://we.easyelectronics.ru/login/openid/" title="Войти через OpenID, GMail, ВКонтакте, Facebook, Twitter, Yandex, Rambler"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/openid.png" alt="OpenID" style="margin-bottom: 10px;"></a><br>


			<p><label>Логин или эл. почта:<br>
			<input type="text" class="input-text" name="login" id="login-input"></label></p>
			
			<p><label>Пароль:<br>
			<input type="password" name="password" class="input-text"></label></p>
			
			<label class="label-remember"><input type="checkbox" name="remember" class="checkbox" checked="">Запомнить меня</label>

			

			<input type="submit" name="submit_login" class="button" value="Войти"><br><br>
			
			<a href="http://we.easyelectronics.ru/login/reminder/">Напомнить пароль</a><br>
			<a href="http://we.easyelectronics.ru/registration/">Регистрация</a>
		</form>
	</div>
						

						
					


<div class="topic">
	<h1 class="title">
							Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR
			</h1>
	
	<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="return ls.favourite.toggle(3144,this,&#39;topic&#39;);" class="favourite "></a>

	
	<div class="info-top">
		<a href="http://we.easyelectronics.ru/blog/AVR/" class="title-blog">AVR</a>
	
		<span class="actions">                                                                   
								</span>
	</div>


	<div class="content">
		

    
    <!-- ������.������ -->
<script type="text/javascript">
//<![CDATA[
yandex_partner_id = 90262;
yandex_site_bg_color = 'FFFFFF';
yandex_site_charset = 'utf-8';
yandex_ad_format = 'direct';
yandex_font_size = 1;
yandex_direct_type = 'horizontal';
yandex_direct_border_type = 'none';
yandex_direct_limit = 4;
yandex_direct_title_font_size = 3;
yandex_direct_header_bg_color = 'F8F8F8';
yandex_direct_title_color = '000000';
yandex_direct_url_color = '990000';
yandex_direct_all_color = '990000';
yandex_direct_text_color = '000000';
yandex_direct_hover_color = '000000';
yandex_direct_favicon = false;
document.write('<sc'+'ript type="text/javascript" src="http://an.yandex.ru/system/context.js"></sc'+'ript>');
//]]>
</script><script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/context.js"></script><div id="Ya_sync_0"><div id="ya_partner_Ya_sync_0-horizontal" style="background:transparent none no-repeat scroll 0 0 !important;border:none !important;border-radius:none !important;border-spacing:0 !important;border-collapse:collapse !important;-moz-box-sizing:content-box !important;box-sizing:content-box !important;clear:none !important;clip:auto !important;color:inherit !important;cursor:auto !important;empty-cells:show !important;float:none !important;font:inherit !important;font-variant:normal !important;font-weight:normal !important;height:auto !important;letter-spacing:normal !important;line-height:normal !important;margin:0 !important;max-height:none !important;max-width:none !important;min-height:0 !important;min-width:0 !important;outline:none !important;overflow:visible !important;padding:0 !important;position:static !important;table-layout:auto !important;text-align:left !important;text-decoration:none !important;text-indent:0 !important;text-transform:none !important;vertical-align:baseline !important;visibility:visible !important;white-space:normal !important;width:auto !important;word-spacing:normal !important;z-index:auto !important;display:block !important;"><yatag class="ya-partner_theme_horizontal  ya-partner ya-partner_type_horiz"><yatag class="ya-partner__ads"><yatag class="ya-partner__ads-l"><a href="http://direct.yandex.ru/?partner" class="ya-partner__ads-link ya-partner__ads-link-l" target="_blank">Яндекс.Директ</a></yatag></yatag><table cellpadding="0" cellspacing="0" class="ya-partner__list"><tbody><tr class="ya-partner__tr"><td class="ya-partner__item ya-partner__item-1 ya-partner__item_pic_yes ya-partner__item_piclayout_float ya-partner__item_sitelinks_yes ya-partner__item_pos_first"><yatag class="ya-partner__pic-container"><a href="http://an.yandex.ru/count/OYT_L3NIVoW40000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gW6beS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705" class="ya-partner__pic" target="_blank" title="lascana.ru" style="width:103px !important;height:90px !important;background-image:url(&#39;//avatars-fast.yandex.net/get-direct/p1zHv2B1D78LdOfR4YzdJA/y90&#39;) !important;"></a></yatag><a href="http://an.yandex.ru/count/OYT_L3NIVoW40000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gW6beS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705" class="ya-partner__title-link" title="lascana.ru" target="_blank"><yatag class="ya-partner__title-link-text">На&nbsp;море в&nbsp;новом купальнике!</yatag></a> <yatag class="ya-partner__text">Купальники и пляжная одежда из Германии. Акция: Бесплатная доставка по РФ!</yatag><yatag class="ya-partner__sitelinks"><yatag class="ya-partner__sitelink ya-partner__sitelink-1"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_LBl2wN440000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gX-beS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705">Распродажа −30%</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-2"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L2qR9py40000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gY6beS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705">Новинки 2014 на&nbsp;Lascana.ru</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-3"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L7oImu840000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gYEbeS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705">Скидка 10%</a></yatag><wbr></yatag><yatag class="ya-partner__url"><yatag class="ya-partner__domain"><a class="ya-partner__domain-link" href="http://an.yandex.ru/count/OYT_L3NIVoW40000ZharUp05XPO95fK2cm5kGxS2Am68hfaAeOcLOGAOM9sWNQaDbgYjpTMw-IQhY_jxMo0EfWcAhBAAchsZCOp8gW6beS9Y0f6vgg6w3e-vYBbV29-wcBv339ENfGAPN4ACa7DLe93MWw-GSrMKaU86fudjgA3o3GMai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcWNQaDk_zMDw0uyiiX0NiK?test-tag=2705" target="_blank">lascana.ru</a></yatag> <yatag class="ya-partner__region"></yatag></yatag><yatag class="ya-partner__clearfix"></yatag></td><td class="ya-partner__gap">&nbsp;</td><td class="ya-partner__item ya-partner__item-2 ya-partner__item_pic_yes ya-partner__item_piclayout_float ya-partner__item_sitelinks_yes"><yatag class="ya-partner__pic-container"><a href="http://an.yandex.ru/count/OYT_L2pOX1u40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g0QMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705" class="ya-partner__pic" target="_blank" title="salonhifi.ru" style="width:116px !important;height:90px !important;background-image:url(&#39;//avatars-fast.yandex.net/get-direct/Nwka7PchzB85YWtN68-c5g/y90&#39;) !important;"></a></yatag><a href="http://an.yandex.ru/count/OYT_L2pOX1u40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g0QMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705" class="ya-partner__title-link" title="salonhifi.ru" target="_blank"><yatag class="ya-partner__title-link-text">Hi-Fi компоненты Denon</yatag></a> <yatag class="ya-partner__text">Широкий выбор в наличии, консультация специалистов, доставка, гарантия.</yatag><yatag class="ya-partner__sitelinks"><yatag class="ya-partner__sitelink ya-partner__sitelink-1"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_LAB84aS40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g7wMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705">Мониторные наушники</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-2"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L3GHt0a40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g8QMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705">AV ресиверы</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-3"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L6MOEBG40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g8wMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705">Blu-Ray проигрыватели</a></yatag><wbr></yatag><yatag class="ya-partner__url"><a class="ya-partner__address" href="http://an.yandex.ru/count/OYT_LDv2gTa40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g1wMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705" target="_blank">Адрес&nbsp;и&nbsp;телефон</a> <yatag class="ya-partner__domain"><a class="ya-partner__domain-link" href="http://an.yandex.ru/count/OYT_L2pOX1u40000ZharUp05XPO95fK2cm5kGxS2Am4oYBHPjl03YQ3CyUkO1vsJ3XAMgAtDrRhv9gkB-tjR80wcFegf6GHqlQRdkm6g0QMV3a2HkQgXkWwFi0uQq0sVidsG-G6JbwK2cM92Z92sDQ2Gc3glaBOrb9hZ3AUQMGIelQN6Rm6ai000092i3gx-hqFPOa3myWImi3REN0En0RA84xcJ3XAx_rOte3Zooo41VHG0?test-tag=2705" target="_blank">salonhifi.ru</a></yatag> <yatag class="ya-partner__region"></yatag></yatag><yatag class="ya-partner__clearfix"></yatag></td><td class="ya-partner__gap">&nbsp;</td><td class="ya-partner__item ya-partner__item-3 ya-partner__item_pic_yes ya-partner__item_piclayout_float ya-partner__item_sitelinks_yes"><yatag class="ya-partner__pic-container"><a href="http://an.yandex.ru/count/OYT_L7Gz8JW40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQe1fQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705" class="ya-partner__pic" target="_blank" title="russia-otdih.ru" style="width:117px !important;height:90px !important;background-image:url(&#39;//avatars-fast.yandex.net/get-direct/NWjDxjMX0fPGZv0Q4HHULg/y90&#39;) !important;"></a></yatag><a href="http://an.yandex.ru/count/OYT_L7Gz8JW40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQe1fQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705" class="ya-partner__title-link" title="russia-otdih.ru" target="_blank"><yatag class="ya-partner__title-link-text">Санаторий имени Кирова, Пятигорск</yatag></a> <yatag class="ya-partner__text">Путевки в санаторий Кирова. Официальные цены 2014 + сезонные акции, скидки!</yatag><yatag class="ya-partner__sitelinks"><yatag class="ya-partner__sitelink ya-partner__sitelink-1"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L6O4sFu40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQeVfQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705">Забронировать номер</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-2"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_LFVsRQS40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQeXfQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705">Официальные цены санатория</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-3"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L49tAt840000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQeZfQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705">Отзывы отдыхающих</a></yatag><wbr></yatag><yatag class="ya-partner__url"><a class="ya-partner__address" href="http://an.yandex.ru/count/OYT_L77Fx0O40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQe7fQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705" target="_blank">Адрес&nbsp;и&nbsp;телефон</a> <yatag class="ya-partner__domain"><a class="ya-partner__domain-link" href="http://an.yandex.ru/count/OYT_L7Gz8JW40000ZharUp05XPO95fK2cm5kGxS2Am4pYBmM4VG6YQFgSDUOM9sk5145bgYjpTMw-IQhY_jxMo0Efey8Ygx1OMUzh6aXWQe1fQJAwW6HkQgXkWwFlZk-5mUVi_tJq06JbwK2cNj2Z92sDQ2G84wlaBOrb9vz6gUHemAee6tMFgIm0000aAmEhlwlGzbYGF3o1B2mDivS0x41ieWJkQuK4GMx_rOte3Zooo41U1K0?test-tag=2705" target="_blank">russia-otdih.ru</a></yatag> <yatag class="ya-partner__region"></yatag></yatag><yatag class="ya-partner__clearfix"></yatag></td><td class="ya-partner__gap">&nbsp;</td><td class="ya-partner__item ya-partner__item-4 ya-partner__item_sitelinks_yes ya-partner__item_pos_last"><a href="http://an.yandex.ru/count/OYT_L6-B1Pa40000ZharUp05XPO95fK2cm5kGxS2Am4qYBhvH7O6YQ6QGWkOI9sGHTAMgAtDrRhv9gkB-tjR80wcReghbuydlQ1bMpAg0QMY1Ki1aRcgeReEZxYHNa4CdxnC1biEavUb0favGeoGY1EWa6eOhv284vINEJ6da842gA2qjZ2ai000092i3gx-hqFPOa3myWImi3REN0En0RA84RcGHTAx_rOte3Zooo41VHG0?test-tag=2705" class="ya-partner__title-link" title="avito.ru" target="_blank"><yatag class="ya-partner__title-link-text">Вакансии на&nbsp;Avito.ru!</yatag></a> <yatag class="ya-partner__text">Тысячи вакансий в&nbsp;Ярославле на&nbsp;сайте бесплатных объявлений AVITO!</yatag><yatag class="ya-partner__sitelinks"><yatag class="ya-partner__sitelink ya-partner__sitelink-1"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L5XjMI040000ZharUp05XPO95fK2cm5kGxS2Am4qYBhvH7O6YQ6QGWkOI9sGHTAMgAtDrRhv9gkB-tjR80wcReghbuydlQ1bMpAg1gMY1Ki1aRcgeReEZxYHNa4CdxnC1biEavUb0favGeoGY1EWa6eOhv284vINEJ6da842gA2qjZ2ai000092i3gx-hqFPOa3myWImi3REN0En0RA84RcGHTAx_rOte3Zooo41VHG0?test-tag=2705">Соискатели</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-2"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L3UXu5840000ZharUp05XPO95fK2cm5kGxS2Am4qYBhvH7O6YQ6QGWkOI9sGHTAMgAtDrRhv9gkB-tjR80wcReghbuydlQ1bMpAg2AMY1Ki1aRcgeReEZxYHNa4CdxnC1biEavUb0favGeoGY1EWa6eOhv284vINEJ6da842gA2qjZ2ai000092i3gx-hqFPOa3myWImi3REN0En0RA84RcGHTAx_rOte3Zooo41VHG0?test-tag=2705">Подать объявление о&nbsp;работе</a><yatag class="ya-partner__sitelinks-inline-delim">·</yatag></yatag><wbr><yatag class="ya-partner__sitelink ya-partner__sitelink-3"><a class="ya-partner__sitelinks-text" target="_blank" href="http://an.yandex.ru/count/OYT_L6Oe1Ey40000ZharUp05XPO95fK2cm5kGxS2Am4qYBhvH7O6YQ6QGWkOI9sGHTAMgAtDrRhv9gkB-tjR80wcReghbuydlQ1bMpAg2gMY1Ki1aRcgeReEZxYHNa4CdxnC1biEavUb0favGeoGY1EWa6eOhv284vINEJ6da842gA2qjZ2ai000092i3gx-hqFPOa3myWImi3REN0En0RA84RcGHTAx_rOte3Zooo41VHG0?test-tag=2705">Вакансии</a></yatag><wbr></yatag><yatag class="ya-partner__url"><yatag class="ya-partner__domain"><a class="ya-partner__domain-link" href="http://an.yandex.ru/count/OYT_L6-B1Pa40000ZharUp05XPO95fK2cm5kGxS2Am4qYBhvH7O6YQ6QGWkOI9sGHTAMgAtDrRhv9gkB-tjR80wcReghbuydlQ1bMpAg0QMY1Ki1aRcgeReEZxYHNa4CdxnC1biEavUb0favGeoGY1EWa6eOhv284vINEJ6da842gA2qjZ2ai000092i3gx-hqFPOa3myWImi3REN0En0RA84RcGHTAx_rOte3Zooo41VHG0?test-tag=2705" target="_blank">avito.ru</a></yatag> <yatag class="ya-partner__region"></yatag></yatag></td></tr></tbody></table></yatag></div></div><script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/context_static_r673.js" yandex_load_check="yes"></script><script type="text/javascript" charset="utf-8" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/90262"></script>
    
    

			 Время от времени мне приходится использовать LCD дисплеи в разных изделиях. Эти изделия базируются на AVR микроконтроллерах. Раньше я писал проги на асме, и у меня была написанная мною библиотечка для этих дисплеев. Но недавно пересел на СИ. И написанной мной библиотеки на СИ еще не было. Поэтому пользовался чужими, скачанными откуда то и когда то. Но вот решил замутить для себя свою собственную сишную библиотеку. Одна из целей данной библиотеки, это лучше научится программировать на СИ. Ведь научиться можно чему то, лишь делая что то. На идеальность и красоту кода не претендую, так как я еще учусь. Если увидите, что можно улучшить, пишите. Интересно будет посмотреть. <a name="cut" rel="nofollow"></a> <br>
<br>
Итак, что может данная библиотека? Поддерживается 4х и 8ми битное подключение. Поддерживается только вывод символов на дисплей. Поддержки работы с памятью <strong>CGRAM</strong> нету. Ибо за все время использования этих дисплеев, мне это ни разу не требовалось. Кажется, что и не потребуется.<br>
<br>
Прежде чем начать что то писать, решил сперва освежить в памяти принцип работы с этими дисплеями. Для этого было нарыто 2 мануала на русском. Обратил внимание на несколько пунктов, которые мне показались важными. <br>
<br>
<strong>Первый пункт — правильная инициализация дисплея.</strong><br>
<blockquote>Нужно выдержать паузу не менее 15 мс между установлением рабочего напряжения питания &gt;4.5 В и выполнением каких либо операций с дисплеем. Три раза подряд подать команду 0x30 на шину LCD без проверки флага занятости BF. Между каждой командой нужно выдерживать временные паузы не менее 4.1 мс и 100 мкс.</blockquote><br>
Значит инициализация будет такой:<br>
1.Включаем питание.<br>
2.После VCC &gt;=4.5V ждем не менее 15 мсек.<br>
3.Отправка команды 0x30 — 0b110000<br>
4.Ждем не менее 4.1 мсек<br>
5.Отправка команды 0x30<br>
6.Ждем не менее 100 мксек<br>
7.Отправка команды 0x30<br>
<blockquote>Приведенные выше операции являются инициализирующими для LCD<br>
и способны вывести дисплей в рабочий режим из любого состояния.</blockquote>8.Далее работаем с дисплеем в обычном режиме.<br>
<br>
<strong>Второй пункт — назначать правильное состояние портам микроконтроллера.</strong><br>
<blockquote>В исходном состоянии LCD, Е=0, R/W=0, RS-произвольно. Шина данных DB0-DB7 в состоянии высокого импеданса (HI). Такое состояние должно поддерживаться все время в промежутках между операциями обмена с LCD.</blockquote><br>
<strong>Третий пункт</strong> — период сигнала Е, должен быть не менее 500 нс. Большинство операций выполняемых LCD занимают около 40 мкс, а некоторые до единиц мсек. Поэтому цикл ожидания флага BF должен предшествовать совершению любой операции с LCD.<br>
<br>
Освежив память этими принципами, начал писать код. Писал в AtmelStudio_6.1. Тестировал все на Atmega16, на древнем Дихальтовском пинбоарде.<br>
<br>
Библиотека представляет собой два файла <strong>LCD.h</strong> и <strong>LCD.c</strong>. В <strong>LCD.h</strong> находятся все дефайны и прототипы функций. В <strong>LCD.c</strong> реализация функций. Файлы к проекту подключаются так:<br>
<br>
Сперва файл <strong>LCD.h</strong><br>
<pre class="prettyprint"><code><span class="com">#define &nbsp;F_CPU 8000000UL &nbsp;</span><span class="pln"><br></span><span class="com">#include &lt;avr/io.h&gt; &nbsp; &nbsp; &nbsp; </span><span class="pln"><br></span><span class="com">#include &lt;util/delay.h&gt;</span><span class="pln"><br></span><span class="com">#include &lt;avr/pgmspace.h&gt;</span><span class="pln"><br></span><span class="com">#include &lt;avr/interrupt.h&gt; </span><span class="pln"><br></span><span class="com">#include "LCD.h" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Хедер для LCD дисплея</span><span class="pln"><br><br></span><span class="kwd">int</span><span class="pln"> main</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; init</span><span class="pun">();</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//Инициализация МК.</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="typ">LCDinit</span><span class="pun">();</span><span class="pln"> &nbsp; &nbsp; &nbsp;</span><span class="com">//Инициализация LCD, эту функцию в первую </span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//очередь, потом все остальное.</span><span class="pln"><br><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="com">//Главный цикл программы.</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br></span></code></pre><br>
<br>
Потом файл <strong>LCD.c</strong> <br>
В окне Solution Explorer правой клавишей кликаем на папку с именем проекта. В появившемся окне выбираем Add/Existing item и наш файл который уже заранее положен в директорию проекта. Должно получится как на картинке.<br>
<br>
<img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/06b591.jpg" align="left"><br>
После этих телодвижений библиотека подключена к проекту и можно начать настраивать дисплей.<br>
<br>
Все настройки производятся в файле <strong>LCD.h</strong>. В файле <strong>LCD.c</strong> нужно выставить только частоту кварца.<br>
<br>
Для начала наверное надо определиться, какая шина у дисплея будет использоваться, 4х битная или 8ми битная. После того как решили, ныряем в файл <strong>LCD.h</strong> и выбираем шину данных. Это делается раскомментированием или закомментированием #define LCD_8BIT.<br>
<br>
&gt;<br>
<br>
&gt;<br>
<br>
&gt;<br>
<br>
Вот так:<br>
<pre class="prettyprint"><code><span class="com">//---------------------------------------------------------------------------------------------</span><span class="pln"><br></span><span class="com">//Если &nbsp;хочешь использовать 8ми битную схему подключения, тогда раскомментируй #define LCD_8BIT</span><span class="pln"><br></span><span class="com">#define LCD_8BIT</span><span class="pln"><br></span><span class="com">//---------------------------------------------------------------------------------------------</span></code></pre><br>
Далее:<br>
<pre class="prettyprint"><code><span class="com">//Указываем порт к которому подключены выводы дисплея LCD DB0...DB7.</span><span class="pln"><br></span><span class="com">#define DPIN &nbsp;PINC</span><span class="pln"><br></span><span class="com">#define DDDR &nbsp;DDRC</span><span class="pln"><br></span><span class="com">#define DPORT PORTC &nbsp; &nbsp; </span></code></pre> <br>
Потом назначаем выводам дисплея, управляющие выводы микроконтроллера.<br>
<pre class="prettyprint"><code><span class="com">//Пины &nbsp;МК &nbsp; &nbsp; &nbsp;LCD &nbsp; </span><span class="pln"><br></span><span class="com">#define DB0 &nbsp;0// DB0</span><span class="pln"><br></span><span class="com">#define DB1 &nbsp;1// DB1</span><span class="pln"><br></span><span class="com">#define DB2 &nbsp;2// DB2 &nbsp; &nbsp;</span><span class="pln"><br></span><span class="com">#define DB3 &nbsp;3// DB3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pln"><br></span><span class="com">#define DB4 &nbsp;4// DB4 &nbsp;</span><span class="pln"><br></span><span class="com">#define DB5 &nbsp;5// DB5</span><span class="pln"><br></span><span class="com">#define DB6 &nbsp;6// DB6</span><span class="pln"><br></span><span class="com">#define DB7 &nbsp;7// DB7 + BF флаг занятости дисплея.</span></code></pre><br>
Причем выводы LCD DB0...DB7 можно подключать к порту МК как угодно, хоть по порядку, хоть в разброс, хоть наперекосяк, хоть морским узлом. Это значения не имеет. <br>
<br>
Например можно так:<br>
<pre class="prettyprint"><code><span class="com">//Пины &nbsp;МК &nbsp; &nbsp; &nbsp;LCD &nbsp; </span><span class="pln"><br></span><span class="com">#define DB0 &nbsp;2// DB0</span><span class="pln"><br></span><span class="com">#define DB1 &nbsp;6// DB1</span><span class="pln"><br></span><span class="com">#define DB2 &nbsp;4// DB2 &nbsp; &nbsp;</span><span class="pln"><br></span><span class="com">#define DB3 &nbsp;7// DB3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pln"><br></span><span class="com">#define DB4 &nbsp;0// DB4 &nbsp;</span><span class="pln"><br></span><span class="com">#define DB5 &nbsp;5// DB5</span><span class="pln"><br></span><span class="com">#define DB6 &nbsp;1// DB6</span><span class="pln"><br></span><span class="com">#define DB7 &nbsp;3// DB7 + BF флаг занятости дисплея.</span></code></pre><br>
Далее:<br>
<pre class="prettyprint"><code><span class="com">//Указываем порт к которому подключены выводы дисплея E, RS, R/W.</span><span class="pln"><br></span><span class="com">#define CDDR &nbsp;DDRD</span><span class="pln"><br></span><span class="com">#define CPORT PORTD</span></code></pre> <br>
Далее:<br>
<pre class="prettyprint"><code><span class="com">// Указываем номера пинов МК, к которым подключаем дисплей.</span><span class="pln"><br></span><span class="com">#define E &nbsp; &nbsp; &nbsp; 4 &nbsp; // E &nbsp; &nbsp; СТРОБ.</span><span class="pln"><br></span><span class="com">#define RW &nbsp; &nbsp; &nbsp;5 &nbsp; // R/W &nbsp; R/W=1 читаем из LCD, R/W=0 записываем в LCD.</span><span class="pln"><br></span><span class="com">#define RS &nbsp; &nbsp; &nbsp;6 &nbsp; // RS &nbsp; &nbsp;RS=0 посылаем команду в LCD, RS=1 посылаем данные в LCD.</span></code></pre><br>
Управляющие пины дисплея E, RS, R/W тоже как и DB0...DB7 можно подключать как угодно, на любые свободные пины МК в выбранном порту. Теперь все настроено, осталось только проверить правильность подключения вашего дисплея к МК в соответствии с файлом LCD.h.<br>
<br>
<strong>Пару слов о 4х битном подключении.</strong><br>
Так как в таком подключении используются только пины данных DB4...DB7, то пины E, RS, R/W можно подключить к тому же порту где висят DB4...DB7. Так же порядок подключения пинов значения не имеет, можно хоть прямо, хоть криво. А можно E, RS, R/W подключить на другой порт. В общем как вам надо так и подключайте.<br>
<br>
<strong>Пользовательские функции.</strong><br>
Настругал малек пользовательских функций, чтоб удобно было работать с дисплеем. Просто вызываешь нужную тебе функцию для нужного действия и все.<br>
<pre class="prettyprint"><code><span class="com">//Пользовательские функции, ими пользуемся в программе.</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDinit</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//Инициализация LCD &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcommand</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//Отправка команды, настройка дисплея &nbsp;</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDGotoXY</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">,</span><span class="pln"> uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; </span><span class="com">//Устанавливаем курсор в X, Y позицию</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDdata</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Вывести 1 символ на дисплей.</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDstring</span><span class="pun">(</span><span class="kwd">char</span><span class="pun">*</span><span class="pln">i</span><span class="pun">,</span><span class="pln">uint8_t</span><span class="pun">,</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> </span><span class="com">//Вывести строку на дисплей в позицию x,y</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> LCDstring_of_sram</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">*,</span><span class="pln">uint8_t</span><span class="pun">,</span><span class="pln">uint8_t</span><span class="pun">,</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="com">//Вывести строку на дисплей в позицию x,y из ОЗУ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> LCDstring_of_flash</span><span class="pun">(</span><span class="kwd">const</span><span class="pln"> uint8_t</span><span class="pun">*,</span><span class="pln">uint8_t</span><span class="pun">,</span><span class="pln"> uint8_t</span><span class="pun">);</span><span class="com">//Вывести строку в позицию x,y из флеша</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDset</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Двухстрочный дисплей 5x8 точек.</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDblank</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сделать невидимым инфо на дисплее</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDnblank</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//Сделать видимой инфо на дисплее + отключение видимых курсоров.</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDclear</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Очистить дисплей от инфо + курсор на позицию 0,0</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> LCDcursor_bl</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Включить мигающий курсор</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> LCDcursor_on</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Включить подчеркивающий курсор</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> LCDcursor_vi</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Включить оба курсора</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcursorOFF</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Выключить курсор (любой)</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDacr</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Cчетчик адреса AC всегда будет смещаться на n+1</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDacl</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Cчетчик адреса AC всегда будет смещаться на n-1</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcursorl</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить курсор влево на 1 символ</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcursorr</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить курсор вправо на 1 символ</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcursorln</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить курсор влево на n символов</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDcursorrn</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить курсор вправо на n символов</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenl</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить экран влево на 1 символ</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenr</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить экран вправо на 1 символ</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenln</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить экран влево на n символов</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenrn</span><span class="pun">(</span><span class="pln">uint8_t</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//Сместить экран вправо на n символов</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenL</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//С каждым новым символом экран будет смещаться влево</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDscreenR</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">//С каждым новым символом экран будет смещаться вправо</span><span class="pln"><br></span><span class="kwd">void</span><span class="pln"> </span><span class="typ">LCDresshift</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">);</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">//Курсор в позицию 0,0 + сброс всех сдвигов, изображение остается</span></code></pre><br>
Некоторые функции опишу.<br>
<pre class="prettyprint"><code><span class="typ">LCDinit</span><span class="pun">();Эта</span><span class="pln"> </span><span class="pun">функция</span><span class="pln"> </span><span class="pun">вызывается</span><span class="pln"> </span><span class="pun">только</span><span class="pln"> </span><span class="pun">один</span><span class="pln"> </span><span class="pun">раз</span><span class="pln"> </span><span class="pun">и</span><span class="pln"> </span><span class="pun">вызывается</span><span class="pln"> </span><span class="pun">самой</span><span class="pln"> </span><span class="pun">первой,</span><span class="pln"> <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">при</span><span class="pln"> </span><span class="pun">старте</span><span class="pln"> </span><span class="pun">МК.</span><span class="pln"> </span><span class="pun">Полезно</span><span class="pln"> </span><span class="pun">перед</span><span class="pln"> </span><span class="pun">этой</span><span class="pln"> </span><span class="pun">функцией</span><span class="pln"> </span><span class="pun">воткнуть</span><span class="pln"> </span><span class="pun">задержку</span><span class="pln"> <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">на</span><span class="pln"> </span><span class="lit">100</span><span class="pln"> </span><span class="pun">мсек,</span><span class="pln"> </span><span class="pun">чтоб</span><span class="pln"> </span><span class="pun">питание</span><span class="pln"> </span><span class="pun">нормализовалось.</span><span class="pln"> </span><span class="pun">После</span><span class="pln"> </span><span class="pun">выполнения</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">этой</span><span class="pln"> </span><span class="pun">функции</span><span class="pln"> LCD </span><span class="pun">настроен</span><span class="pln"> </span><span class="pun">на</span><span class="pln"> </span><span class="pun">конкретную</span><span class="pln"> </span><span class="pun">шину</span><span class="pln"> </span><span class="pun">данных,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">е</span><span class="pln"> </span><span class="pun">строки,</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="lit">5x8</span><span class="pln"> </span><span class="pun">точек,</span><span class="pln"> </span><span class="pun">без</span><span class="pln"> </span><span class="pun">отображения</span><span class="pln"> </span><span class="pun">курсора,</span><span class="pln"> </span><span class="pun">сдвиг</span><span class="pln"> </span><span class="pun">курсора</span><span class="pln"> n</span><span class="pun">+</span><span class="lit">1</span><span class="pun">,курсор</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">позицию</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span></code></pre><br>
Установка курсора в нужную позицию.<br>
<pre class="prettyprint"><code><span class="typ">LCDGotoXY</span><span class="pun">(</span><span class="lit">7</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span></code></pre><br>
Первая цифра может быть от 0 до 39. Она означает позицию в строке. А вторая цифра означает строку. Если 0 верхняя строка, 1 нижняя строка. Вот карта символов дисплея.<br>
<pre class="prettyprint"><code><span class="pun">Карта</span><span class="pln"> </span><span class="pun">символов</span><span class="pln"> </span><span class="pun">дисплея.</span><span class="pln"><br></span><span class="typ">LCDGotoXY</span><span class="pun">(</span><span class="lit">3</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span><span class="pln"><br></span><span class="pun">Цифра</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="pun">означает</span><span class="pln"> </span><span class="pun">четвертую</span><span class="pln"> </span><span class="pun">позицию</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> </span><span class="pun">любой</span><span class="pln"> </span><span class="pun">строке.</span><span class="pln"> </span><span class="pun">Если</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="pun">то</span><span class="pln"> </span><span class="pun">это</span><span class="pln"> </span><span class="pun">первая</span><span class="pln"> </span><span class="pun">позиция</span><span class="pln"> <br></span><span class="pun">в</span><span class="pln"> </span><span class="pun">любой</span><span class="pln"> </span><span class="pun">строке.</span><span class="pln"> </span><span class="pun">Цифра</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">означает</span><span class="pln"> </span><span class="pun">нижнюю</span><span class="pln"> </span><span class="pun">строку</span><span class="pln"> </span><span class="pun">а</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">верхнюю.</span><span class="pln"><br></span><span class="pun">|</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">1</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">3</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">4</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">5</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">6</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="lit">7</span><span class="pun">,</span><span class="lit">0</span><span class="pun">|</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="pun">первая</span><span class="pln"> </span><span class="pun">строка</span><span class="pln"><br></span><span class="pun">|</span><span class="lit">0</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">2</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">3</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">4</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">5</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">6</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="lit">7</span><span class="pun">,</span><span class="lit">1</span><span class="pun">|</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="pun">вторая</span><span class="pln"> </span><span class="pun">строка</span></code></pre><br>
<br>
<pre class="prettyprint"><code><span class="typ">LCDdata</span><span class="pun">(</span><span class="str">'A'</span><span class="pun">);</span><span class="com">//Вывести 1 символ на дисплей.</span></code></pre><br>
<pre class="prettyprint"><code><span class="typ">LCDstring</span><span class="pun">(</span><span class="str">"Hi baby"</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="com">//Вывести строку на дисплей в позицию x,y</span></code></pre><br>
<pre class="prettyprint"><code><span class="pun">Перед</span><span class="pln"> </span><span class="pun">использованием</span><span class="pln"> </span><span class="pun">функции</span><span class="pln"> LCDstring_of_sram</span><span class="pun">,</span><span class="pln"> </span><span class="pun">нужно</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> </span><span class="pun">озу</span><span class="pln"> </span><span class="pun">память</span><span class="pln"> <br>&nbsp; &nbsp; &nbsp; </span><span class="pun">вклинить</span><span class="pln"> </span><span class="pun">например</span><span class="pln"> </span><span class="pun">такую</span><span class="pln"> </span><span class="pun">строку</span><span class="pln"><br>uint8_t text2</span><span class="pun">[</span><span class="lit">7</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">'H'</span><span class="pun">,</span><span class="str">'I'</span><span class="pun">,</span><span class="str">' '</span><span class="pun">,</span><span class="str">'b'</span><span class="pun">,</span><span class="str">'a'</span><span class="pun">,</span><span class="str">'b'</span><span class="pun">,</span><span class="str">'y'</span><span class="pun">};</span><span class="pln"><br></span><span class="pun">или</span><span class="pln"> </span><span class="pun">такую,</span><span class="pln"> </span><span class="pun">что</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> </span><span class="pun">общемто</span><span class="pln"> </span><span class="pun">одинаково.</span><span class="pln"><br>uint8_t text3</span><span class="pun">[</span><span class="lit">7</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">"hi baby"</span><span class="pun">};</span><span class="pln"><br></span><span class="pun">Потом</span><span class="pln"> </span><span class="pun">вызываем</span><span class="pln"> </span><span class="pun">функцию</span><span class="pln"> </span><span class="pun">вывода</span><span class="pln"> </span><span class="pun">этой</span><span class="pln"> </span><span class="pun">строки</span><span class="pln"> </span><span class="pun">из</span><span class="pln"> </span><span class="pun">озу</span><span class="pln"><br>LCDstring_of_sram</span><span class="pun">(</span><span class="pln">text3</span><span class="pun">,</span><span class="lit">7</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span><span class="pln"> </span><span class="lit">7</span><span class="pun">-это</span><span class="pln"> </span><span class="pun">значит</span><span class="pln"> </span><span class="lit">7</span><span class="pln"> </span><span class="pun">символов</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> </span><span class="pun">массиве.</span><span class="pln"> <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="lit">0</span><span class="pun">,</span><span class="lit">1</span><span class="pln"> </span><span class="pun">позиция</span><span class="pln"> </span><span class="pun">вывода</span><span class="pln"> x y.</span></code></pre><br>
<pre class="prettyprint"><code><span class="pun">Перед</span><span class="pln"> </span><span class="pun">использованием</span><span class="pln"> </span><span class="pun">функции</span><span class="pln"> LCDline_of_flash</span><span class="pun">,</span><span class="pln"> </span><span class="pun">нужно</span><span class="pln"> </span><span class="pun">фо</span><span class="pln"> </span><span class="pun">флеш</span><span class="pln"> </span><span class="pun">память</span><span class="pln"> </span><span class="pun">вклинить</span><span class="pln"> <br></span><span class="pun">например</span><span class="pln"> </span><span class="pun">такую</span><span class="pln"> </span><span class="pun">строку</span><span class="pln"> </span><span class="pun">в</span><span class="pln"> </span><span class="pun">конце</span><span class="pln"> </span><span class="pun">не</span><span class="pln"> </span><span class="pun">забываем</span><span class="pln"> </span><span class="pun">символ</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">вставить,</span><span class="pln"> </span><span class="pun">иначе</span><span class="pln"> </span><span class="pun">эта</span><span class="pln"> </span><span class="pun">функция</span><span class="pln"> <br></span><span class="pun">выведет</span><span class="pln"> </span><span class="pun">на</span><span class="pln"> </span><span class="pun">дисплей</span><span class="pln"> </span><span class="pun">всю</span><span class="pln"> </span><span class="pun">флеш</span><span class="pln"> </span><span class="pun">память</span><span class="pln"> </span><span class="pun">МК.</span><span class="pln"><br><br></span><span class="kwd">const</span><span class="pln"> uint8_t text</span><span class="pun">[]</span><span class="pln"> PROGMEM </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="lit">0x20</span><span class="pun">,</span><span class="lit">0xA8</span><span class="pun">,</span><span class="lit">0x70</span><span class="pun">,</span><span class="lit">0xB8</span><span class="pun">,</span><span class="lit">0xB3</span><span class="pun">,</span><span class="lit">0x65</span><span class="pun">,</span><span class="lit">0xBF</span><span class="pun">,</span><span class="lit">0x20</span><span class="pun">,</span><span class="lit">0xE3</span><span class="pun">,</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="lit">0x65</span><span class="pun">,</span><span class="lit">0xBF</span><span class="pun">,</span><span class="lit">0xBA</span><span class="pun">,</span><span class="lit">0x61</span><span class="pun">,</span><span class="lit">0x21</span><span class="pun">,</span><span class="lit">0</span><span class="pun">};</span><span class="com">//Привет детка!</span><span class="pln"><br><br></span><span class="pun">Потом</span><span class="pln"> </span><span class="pun">эту</span><span class="pln"> </span><span class="pun">строку</span><span class="pln"> </span><span class="pun">из</span><span class="pln"> </span><span class="pun">флеша</span><span class="pln"> </span><span class="pun">выводим</span><span class="pln"> </span><span class="pun">на</span><span class="pln"> LCD </span><span class="pun">так:</span><span class="pln"><br>LCDline_of_flash</span><span class="pun">(</span><span class="pln">text</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span><span class="com">//В позицию 0,1 на русском выведется Привет детка!, </span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">если</span><span class="pln"> </span><span class="pun">твой</span><span class="pln"> LCD </span><span class="pun">поддерживает</span><span class="pln"> </span><span class="pun">русские</span><span class="pln"> </span><span class="pun">символы</span><span class="pln">.</span></code></pre><br>
Ну а про остальные функции особо нечего говорить. Просто их вызываешь и выполняется какое нибудь действие. Действие которое написано в комментарии к этой функции.<br>
<br>
<strong>Тест библиотеки.</strong><br>
Перед тем как выложить библиотеку всенародно, я ее протестировал. Начальная схема подключения была такая:<br>
<img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/dcf5ed.jpg" class="image-center"><br>
<strong>Тестировал так:</strong><br>
<br>
1. Во время работающего дихальтовского пинбоарда, выдрал на ходу кварц на 8 Мгц и вставил на 16Мгц. Ничего не загнулось. Все продолжало работать, только в два раза быстрее. Я еще пару раз по ходу работы выдергивал и менял кварц то на 8 то на 16 Мгц. Вырубал/врубал питание на 16и Мгц, дисплей все равно инициализировался и продолжал работать.<br>
<br>
2. Тогда я врубил прерывание на таймере Т0 по совпадению регистра совпадения с регистром счета. Предделитель выставил 001. Меньше уже нельзя. Ну и начал уменьшать число в регистре сравнения OCR0. Когда прерывание стало возникать каждые 12 тактов кварца, то библиотека загнулась. Причем загнулась где то на уровне функции LCDinit();. Дисплей даже не инициализировался. Я не стал рыть землю ибо в реальных проектах навряд ли прерывания возникают каждые 12 тактов. Но прикольно что на 13 тактах все работает. Когда я переключил дисплей на 8ми битную схему, то библиотека стабильно работала при любом значении в регистре OCR0. Даже когда там был 0. <br>
<br>
Но через пару дней я все таки стал рыть землю. Как и предполагал из-за частых прерываний загиб происходит на стадии инициализации. Получается что все процессорное время фактически уходит на обработчик прерывания. Вопрос решается легко. Прерывание желательно включать тогда, когда дисплей инициализировался. Типа так:<br>
<pre class="prettyprint"><code><span class="pln"><br></span><span class="typ">LCDinit</span><span class="pun">();</span><span class="pln"><br>sei</span><span class="pun">();</span><span class="com">//ВКЛЮЧИЛИ ПРЕРЫВАНИЕ</span></code></pre><br>
Но опять таки, это не обязательно, так как я выше уже сказал, что навряд ли существуют такие проекты в которых прерывание возникает каждые 13 тактов кварца. Ну а после инициализации дисплея хоть все огнем гори. Прерывания могут возникать когда угодно и как угодно, на работу дисплея это никак не влияет. Ни на 4х ни на 8ми битную шину.<br>
<br>
3. Потом я начал собирать различные схемы подключения LCD к МК. Перепробовал разные схемы и 4х битные и 8ми. Последняя схема была 4х битная. На один порт посадил пины DB4...DB7 и E, RS, R/W. Все схемы заработали сразу.<br>
<br>
Так что проект выкладываю в топик. Если вам нужна эта библиотека, то качайте весь проект и выдирайте оттуда эти два файла <strong>LCD.h</strong> и <strong>LCD.c</strong> и библиотэка ваша. <br>
<br>
Вот <a href="http://youtu.be/Dwvam5mFxao" rel="nofollow">видео</a> работы библиотеки.<br>
<br>
А если позарез нужны функции работы с памятью <strong>CGRAM</strong>? Могу вас обрадовать. Вопрос можно решить двумя способами.<br>
1. Допишите сами эти функции. Правда неплохая идея?<br>
<br>
2. Есть у меня еще одна библиотека, импортовая какая то. Когда то, откуда то скачал. Несколько раз использовал в довольно серьезных проектах. Все четко работает, хотя не все там сделано оптимально с точки зрения кода. И некоторые вещи сделаны не в согласии с мануалом. Однако же работает. Там тоже вагон функций, я в них даже до конца еще не разобрался. Ну и со схемами подключения там не все радужно. Так вот просто как хочется не подключишь дисплей. Постоянно надо лезть в исходники и что то там подправлять, чтоб все состыковалось с желаемой схемой подключения. Кстати когда писал свою библиотеку, то подсматривал в эту импортовую либу. Некоторые идеи оттуда содрал начисто но модернезировал. Но зато эта импортовая библиотека поддерживает работу с <strong>CGRAM</strong>. Тоже ее в топик выложил.<br>
<br>
Кстати об объеме кода моей библиотеки. Она влезет в чип с 2мя кб памятью, еще и место останется для других дел. Но как правило дисплеи с такими МК навряд ли используются.<br>
<br>
Кстати товарищ <a href="http://we.easyelectronics.ru/profile/Signaller/" class="ls-user">Signaller</a> тестировал данную библиотеку в Протеусе. Говорит, что все вроде нормально моделируется.<br>
<br>
Продолжение статьи <a href="http://we.easyelectronics.ru/lcd_gfx/dopilka-biblioteki-dlya-lcd-na-baze-hd44780.html#comment122672" rel="nofollow"><strong>здесь.</strong></a>
			</div> 



	<ul class="tags">
					<li><a href="http://we.easyelectronics.ru/tag/LCD/">LCD</a>, </li>
					<li><a href="http://we.easyelectronics.ru/tag/HD44780/">HD44780</a>, </li>
					<li><a href="http://we.easyelectronics.ru/tag/%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0/">библиотека</a>, </li>
					<li><a href="http://we.easyelectronics.ru/tag/%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B9/">дисплей</a></li>
		                                                             
	</ul>



	<ul class="info">
		<li id="vote_area_topic_3144" class="voting positive guest">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(3144,this,1,&#39;topic&#39;);"></a>
			<span id="vote_total_topic_3144" class="total" title="всего проголосовало: 22"> +4 </span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(3144,this,-1,&#39;topic&#39;);"></a>
		</li>
		<li class="date">24 июня 2013, 21:46</li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
				
        <!-- Attachments plugin -->
    <link rel="stylesheet" type="text/css" href="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/small.css">
    <li class="FilesInTopic" title="Прикреплено 2 файлов.">
      2
    </li>
    <!-- /Attachments plugin -->
  
	</ul>
			                <!-- Attachments plugin -->
      <div class="AttachmentsInTopic">
        Файлы в топике: 

                  <a href="http://we.easyelectronics.ru/attachments/get/1595">Импортовая.zip</a>,                   <a href="http://we.easyelectronics.ru/attachments/get/1597">Atmega16_LCD_LIB.zip</a>              </div>
      <!-- /Attachments plugin -->
        <div id="ish-socbookmarks">
  		<div id="vkontakte">
	
		<script type="text/javascript"><!--  
		document.write(VK.Share.button(false,{type: "round", text: "Вконтакте"})); 
		--></script><table cellspacing="0" cellpadding="0" id="vkshare0" onmouseover="VK.Share.change(1, 0);" onmouseout="VK.Share.change(0, 0);" onmousedown="VK.Share.change(2, 0);" onmouseup="VK.Share.change(1, 0);" style="position: relative; width: auto; cursor: pointer; border: 0px;"><tbody><tr style="line-height: normal;"><td style="vertical-align: middle;"><a href="http://vk.com/share.php?url=http%3A%2F%2Fwe.easyelectronics.ru%2FAVR%2Fbiblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html" onmouseup="this._btn=event.button;this.blur();" onclick="return VK.Share.click(0, this);" style="border: none;background: #5F83AA;-webkit-border-radius: 2px 0px 0px 2px;-moz-border-radius: 2px 0px 0px 2px;border-radius: 2px 0px 0px 2px;display:block;text-decoration: none;padding: 3px 3px 3px 6px;color: #FFFFFF;font-family: tahoma, arial;height: 15px;line-height:15px;font-size: 10px;text-shadow: none;">Вконтакте<div class="float:right"></div></a></td><td style="vertical-align: middle;"><a href="http://vk.com/share.php?url=http%3A%2F%2Fwe.easyelectronics.ru%2FAVR%2Fbiblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html" onmouseup="this._btn=event.button;this.blur();" onclick="return VK.Share.click(0, this);" style="border: none;background: #5F83AA;-webkit-border-radius: 0px 2px 2px 0px;-moz-border-radius: 0px 2px 2px 0px;border-radius: 0px 2px 2px 0px;display:block; padding: 3px;"><div style="background: url(&#39;//vk.com/images/icons/share_logo.png&#39;) 0px 0px no-repeat; background-size: 16px 31px; width: 15px;height: 15px;"></div></a></td><td style="vertical-align: middle;"><a href="http://vk.com/share.php?url=http%3A%2F%2Fwe.easyelectronics.ru%2FAVR%2Fbiblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html" onmouseup="this._btn=event.button;this.blur();" onclick="return VK.Share.click(0, this);" style="text-decoration: none; font-weight: bold; font-family: tahoma, arial; display: block;"><div style="background: url(&#39;//vk.com/images/icons/share_logo.png&#39;) 0px -24px no-repeat; background-size: 16px 31px; width: 4px; height: 7px;position: absolute; margin: 7px 0px 0px 4px;z-index:100;"></div><div id="vkshare_cnt0" style="border: 1px solid #bbbfc4;background: #FFFFFF;height: 15px;line-height: 15px;5px; padding: 2px 4px;min-width: 12px;margin-left: 7px;border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius:2px;text-align: center; color: #666c73;font-size: 10px;z-index:99;">2</div></a></td></tr></tbody></table>
	
	</div>
			<div id="facebook">
    
    <script type="text/javascript"><!--
		document.write('<iframe src="http://www.facebook.com/plugins/like.php?href='+escape(document.location.href)+'&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>');
    --></script><iframe src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/like.htm" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowtransparency="true"></iframe>
    
	</div>
			<div id="moimir">
    
    <script type="text/javascript"><!--
    document.write('<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url='+escape(document.location.href)+'">МойМир</a>');
    --></script><a class="mrc__share mrc__share_done" type="button_count" href="http://connect.mail.ru/share?share_url=http%3A//we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html" style="overflow: hidden; white-space: nowrap; text-align: left; line-height: 17px; position: relative; width: auto; outline: 0px; text-decoration: none; height: 18px; font-size: 11px; font-weight: normal;"><small style="overflow: hidden; vertical-align: bottom;white-space:nowrap;text-align:left;line-height:17px;position:relative;width:auto;padding:0;margin:0;outline:0; text-decoration:none; display:inline-block; height:18px;background:url(http://img1.imgsmail.ru/r/new_share_buttons_sprite.gif) no-repeat 0 0; padding-left: 22px;line-height: 9px;"><i title="Поделиться страницей с друзьями в Моем Мире@Mail.Ru" style="vertical-align:top;float: none; white-space:nowrap;text-align:left;font-size:11px;line-height:9px;position:relative;width:auto;color:white;padding:0;margin:0;font-weight: bold; display:inline-block;background:url(http://img1.imgsmail.ru/r/new_share_buttons_sprite.gif) no-repeat right -19px; height: 14px; padding: 4px 5px 0 0; font-family: &#39;Lucida Grande&#39;,Tahoma,Verdana,Arial,sans-serif; font-szie: 11px; font-style: normal;cursor: pointer; line-height: 9px; *line-height: 13px; *padding-top: 2px; *height: 18px; ">МойМир</i><span title="Уже поделились" style="float: none; width:auto;color:black;padding:0;margin:0;display:none;background:url(http://img1.imgsmail.ru/r/new_share_buttons_sprite.gif) no-repeat left -123px; height: 13px; font-family: Tahoma; color: #000; padding: 5px 5px 0 10px; border-right: 1px solid #ffc70d; margin-left: 1px; cursor: pointer; font-weight: normal; font-style: normal; line-height: 8px; *line-height: 100%; *padding-top: 3px; *height: 18px">&nbsp;</span></small></a>
    
	</div>
			<div id="tweetme">
	
		<script type="text/javascript">
		tweetmeme_style = 'compact';
		</script>
		<script type="text/javascript" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/button.js"></script>
	
	</div>
	    
  	<div id="google_plusone">
    <div id="___plusone_0" style="text-indent: 0px; margin: 0px; padding: 0px; background-color: transparent; border-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; display: inline-block; width: 106px; height: 24px; background-position: initial initial; background-repeat: initial initial;"><iframe frameborder="0" hspace="0" marginheight="0" marginwidth="0" scrolling="no" style="position: static; top: 0px; width: 106px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 24px;" tabindex="0" vspace="0" width="100%" id="I0_1393017189007" name="I0_1393017189007" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/fastbutton.htm" data-gapiattached="true" title="+1"></iframe></div>
	</div>
	      </div>
	</div>	
<div class="comments-header">
	<h3>Комментарии (<span id="count-comments">100</span>)</h3>
		<a href="http://we.easyelectronics.ru/rss/comments/3144/" class="rss">RSS</a>
		<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.collapseCommentAll(); return false;" onfocus="blur();">свернуть</a> /
	<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.expandCommentAll(); return false;" onfocus="blur();">развернуть</a>
</div>

<a name="comments"></a>
	
	
<div class="comments" id="comments">
						
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111909">
		
		
<div id="comment_id_111909" class="comment not-admin ">
	<a name="comment111909"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111909" class="content">
			
			Прошу прощения, но все читать даже не стал.<br>
Расскажите вкратце, в двух словах, чем Ваша библиотека лучше существующих?
			</div>
	
	
							
		<div id="vote_area_comment_111909" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111909,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111909" class="total">+2</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111909,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Martovskij/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.png" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Martovskij/">Martovskij</a></li>
		<li class="date">24 июня 2013, 22:09</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111909" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111912">
		
		
<div id="comment_id_111912" class="comment not-admin ">
	<a name="comment111912"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111912" class="content">
			
			Ничем.
			</div>
	
	
							
		<div id="vote_area_comment_111912" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111912,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111912" class="total">+2</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111912,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">24 июня 2013, 22:14</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111912" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111912,111909); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111918">
		
		
<div id="comment_id_111918" class="comment not-admin ">
	<a name="comment111918"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111918" class="content">
			
			<blockquote>В файле LCD.c нужно выставить только частоту кварца.</blockquote>Зачем его там объявлять? Этот дефайн практически всегда задается в опциях компилятора. Лучше сделать так:<br>
<pre class="prettyprint"><code><span class="com">#ifndef F_CPU</span><span class="pln"><br></span><span class="com">#error "F_CPU not defined"</span><span class="pln"><br></span><span class="com">#endif</span></code></pre><br>
<blockquote>void LCDset(void); //Двухстрочный дисплей 5x8 точек.</blockquote>Что мешало задать количество строк дефайном или параметром функции? Да и количество точек можно задавать, хотя ни разу не видел дисплеев с 5х10.<br>
<br>
Интересно, почему из флеша выводятся null-terminated строки, а из ОЗУ — по размеру? Неоднородность апи — плохо.<br>
<blockquote>0x65,0xBF,0xBA,0x61,0x21,0};//Привет детка!</blockquote>Тарабарская грамота. Почему было не внести функцию перекодировки кириллицы из CP1251?<br>
<blockquote>Ну а про остальные функции особо нечего говорить. Просто их вызываешь и выполняется какое нибудь действие.</blockquote>А не слишком ли их много? К тому же, половину из них разумнее было реализовать макросами.<br>
<blockquote>Я не стал рыть землю ибо в реальных проектах навряд ли прерывания возникают каждые 12 тактов.</blockquote>Это даже не костыль, это просто баг.<br>
<blockquote>Кстати об объеме кода моей библиотеки. Она влезет в чип с 2мя кб памятью, еще и место останется для других дел</blockquote>Вообще-то, в таких случаях указывается конкретный размер в килобайтах. Одно дело полкилобайта (насколько я знаю, это около минимума для этих библиотек) и совсем другое — полтора.
			</div>
	
	
							
		<div id="vote_area_comment_111918" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111918,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111918" class="total">+3</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111918,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">24 июня 2013, 22:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111918" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111922">
		
		
<div id="comment_id_111922" class="comment not-admin ">
	<a name="comment111922"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111922" class="content">
			
			<blockquote>Тарабарская грамота. Почему было не внести функцию перекодировки кириллицы из CP1251?</blockquote>Потому что она занимает место… А часто его не хватает…<br>
Хотя, лучше её всё таки вписать, а на этапе компиляции релиза, если места будет не хватать, простым скриптом перекодировать файл с текстовыми строками и подменить макрос вызова функции на пустой.
			</div>
	
	
							
		<div id="vote_area_comment_111922" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111922,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111922" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111922,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Sicorski/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Sicorski/">Sicorski</a></li>
		<li class="date">24 июня 2013, 23:12</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111922" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111922,111918); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_111931">
		
		
<div id="comment_id_111931" class="comment not-admin ">
	<a name="comment111931"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111931" class="content">
			
			<blockquote>Этот дефайн практически всегда задается в опциях компилятора.</blockquote>Не нашел я этой опции поэтому так и сделал. <br>
<br>
<blockquote>Что мешало задать количество строк дефайном или параметром функции?</blockquote>LCDcommand(0b101000); пожалуйста можно так, но думаю что LCDset(); удобнее выглядит<br>
<br>
<blockquote>Неоднородность апи — плохо.</blockquote>Что за апи?<br>
<br>
<blockquote>Почему было не внести функцию перекодировки кириллицы из CP1251?</blockquote>Неплохая идея, надо будет реализовать. <br>
<br>
<blockquote>половину из них разумнее было реализовать макросами.</blockquote>Разумнее почему?<br>
<br>
<blockquote>Это даже не костыль, это просто баг.</blockquote>Что есть костыль?<br>
<br>
<blockquote>указывается конкретный размер в килобайтах</blockquote>Не совсем понятно как вычисляется конкретный размер? Размер чего, каждой вызываемой функции? Функция LCDinit(); весит меньше 400 байт. Все, после нее дисплей готов работать. Но в эти 400 байт входит куча других функций которые цепляет за собой LCDinit();
			</div>
	
	
							
		<div id="vote_area_comment_111931" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111931,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111931" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111931,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:25</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111931" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111931,111918); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111942">
		
		
<div id="comment_id_111942" class="comment not-admin ">
	<a name="comment111942"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111942" class="content">
			
			<blockquote>Не нашел я этой опции поэтому так и сделал. </blockquote>В 4-й студии оно в настройках проекта, в пятой нужно вручную в строке дефайнов писать F_CPU=16000000L (а если и ее нет — то в «прочих опциях компилятора» -DF_CPU=16000000L).<br>
<blockquote>LCDcommand(0b101000); пожалуйста можно так, но думаю что LCDset(); удобнее выглядит</blockquote>Можно было сделать #define LCDset() LCDCommand(0x28). Хотя у макросов свои минусы, но по размеру кода оно было бы эффективнее.<br>
<blockquote>Что за апи?</blockquote>API — Application Programming Interface. Проще говоря, интерфейс библиотеки.<br>
<blockquote>Разумнее почему?</blockquote>Они короткие и состоят только из вызова другой функции с указанными параметрами. AFAIK без инлайнов (а они у тебя не inline, к тому же вроде свежие AVR Toolchain в коде на С не любят разворачивать инлайны при -Os) они компилируются гораздо менее эффективно, чем макрос.<br>
<blockquote>Что есть костыль?</blockquote>Костыль он и есть <a href="http://lurkmore.to/%D0%9A%D0%BE%D1%81%D1%82%D1%8B%D0%BB%D1%8C" rel="nofollow">костыль</a>.<br>
<blockquote>Не совсем понятно как вычисляется конкретный размер?</blockquote>Размер, на который увеличивается программа при подключении и использовании библиотеки (от одного лишь инита, например, толку нет — нужно еще текст выводить и все такое). Скажем, ЕМНИП дихальтовская библиотека для 44780 укладывается примерно в полкило. Хороший пример — раздел «системные требования» <a href="http://we.easyelectronics.ru/electro-and-pc/podklyuchenie-mikrokontrollera-k-lokalnoy-seti-testy-proizvoditelnosti-i-kratkoe-opisanie-api-steka.html" rel="nofollow">этой статьи</a>.
			</div>
	
	
							
		<div id="vote_area_comment_111942" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111942,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111942" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111942,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 09:37</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111942" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111942,111931); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112083">
		
		
<div id="comment_id_112083" class="comment not-admin ">
	<a name="comment112083"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112083" class="content">
			
			<blockquote>Функция LCDinit(); весит меньше 400 байт. Все, после нее дисплей готов работать.</blockquote>В МикроПаскале (правда, для PIC, для AVR лень искать проект с LCD):<br>
<br>
LCD_Init = 78 байт;<br>
LCD_Cmd = 87 байт;<br>
LCD_Out = 63 байт;<br>
<br>
Взято из статистики компиляции программы контроллера башни моего робота.<br>
Пробовал со всеми имеющимися у меня дисплеями разных фирм, формата 8, 16, 20 символов, 1 и 2 строки.<br>
Причем, любые ноги дисплея могут быть на любых (в том числе разных! ) портах. Задаются побитно:<br>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"><br></span><span class="com">// LCD module connections</span><span class="pln"><br>&nbsp; LCD_RS </span><span class="pun">:</span><span class="pln"> sbit at RA3_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_EN </span><span class="pun">:</span><span class="pln"> sbit at RA4_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D4 </span><span class="pun">:</span><span class="pln"> sbit at RD0_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D5 </span><span class="pun">:</span><span class="pln"> sbit at RD1_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D6 </span><span class="pun">:</span><span class="pln"> sbit at RD2_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D7 </span><span class="pun">:</span><span class="pln"> sbit at RD3_bit</span><span class="pun">;</span><span class="pln"><br><br>&nbsp; LCD_RS_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISA3_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_EN_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISA4_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D4_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISD0_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D5_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISD1_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D6_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISD2_bit</span><span class="pun">;</span><span class="pln"><br>&nbsp; LCD_D7_Direction </span><span class="pun">:</span><span class="pln"> sbit at TRISD3_bit</span><span class="pun">;</span><span class="pln"><br></span><span class="com">// End LCD module connections</span></code></pre><br>
<br>
В большинстве виденных мной других библиотек требовалось, чтобы хотя бы входы данных были на одном порту… В вашей вроде — тоже?
			</div>
	
	
							
		<div id="vote_area_comment_112083" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112083,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112083" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112083,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 10:11</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112083" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112083,111931); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112084">
		
		
<div id="comment_id_112084" class="comment not-admin ">
	<a name="comment112084"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112084" class="content">
			
			<blockquote>Причем, любые ноги дисплея могут быть на любых (в том числе разных! ) портах.</blockquote>Да это вещь!<br>
<blockquote>В большинстве виденных мной других библиотек требовалось, чтобы хотя бы входы данных были на одном порту… В вашей вроде — тоже?<br>
</blockquote> Да тоже.
			</div>
	
	
							
		<div id="vote_area_comment_112084" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112084,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112084" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112084,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">27 июня 2013, 10:33</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112084" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112084,112083); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112085">
		
		
<div id="comment_id_112085" class="comment not-admin ">
	<a name="comment112085"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112085" class="content">
			
			Может свою следующую библиотеку тоже сделаю чтоб можно было подключать дисплей на разные пины любого порта.
			</div>
	
	
							
		<div id="vote_area_comment_112085" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112085,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112085" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112085,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">27 июня 2013, 10:34</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112085" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112085,112084); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112086">
		
		
<div id="comment_id_112086" class="comment not-admin ">
	<a name="comment112086"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112086" class="content">
			
			<blockquote>Может свою следующую библиотеку тоже сделаю чтоб можно было подключать дисплей на разные пины любого порта. </blockquote>Это обычно усложняет вывод, потому что данные приходится выводить не сразу байтом или полубайтом, а предварительно разбивая их побитно, но часто оно того стоит.<br>
<br>
Например, у Меги 8 такая хреновая раскладка портов, что при использовании, например, последовательных интерфейсов I2C и UART, и АЦП, обычно не остается свободного цельнобайтового порта.<br>
<br>
Да и разводка ног на плате часто сильно упрощается, если использовать для дисплея удобные свободные ноги.<br>
<br>
А поскольку операции вывода на него занимают не так уж много времени в программе, то с некоторым усложнением функций ради этого вполне можно смириться.
			</div>
	
	
							
		<div id="vote_area_comment_112086" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112086,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112086" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112086,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 10:51</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112086" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112086,112085); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112087">
		
		
<div id="comment_id_112087" class="comment not-admin ">
	<a name="comment112087"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112087" class="content">
			
			Ну да согласен. Я как раз сидел и думал, что это было бы удобно применить на 8меге.
			</div>
	
	
							
		<div id="vote_area_comment_112087" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112087,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112087" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112087,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">27 июня 2013, 11:01</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112087" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112087,112086); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112088">
		
		
<div id="comment_id_112088" class="comment not-admin ">
	<a name="comment112088"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112088" class="content">
			
			У меня в библиотеке так сделано. Любой пин, любого порта.
			</div>
	
	
							
		<div id="vote_area_comment_112088" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112088,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112088" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112088,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/uni/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(3).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/uni/">uni</a></li>
		<li class="date">27 июня 2013, 11:12</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112088" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112088,112087); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112089">
		
		
<div id="comment_id_112089" class="comment not-admin ">
	<a name="comment112089"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112089" class="content">
			
			Так я ж и говорю, что твоя библиотека просто зверь!
			</div>
	
	
							
		<div id="vote_area_comment_112089" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112089,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112089" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112089,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">27 июня 2013, 11:18</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112089" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112089,112088); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112116">
		
		
<div id="comment_id_112116" class="comment not-admin ">
	<a name="comment112116"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112116" class="content">
			
			Это в любой такой библиотеке удобно на любом мк=)
			</div>
	
	
							
		<div id="vote_area_comment_112116" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112116,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112116" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112116,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/teplofizik/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(4).png" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/teplofizik/">teplofizik</a></li>
		<li class="date">27 июня 2013, 17:37</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112116" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112116,112087); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_112090">
		
		
<div id="comment_id_112090" class="comment not-admin ">
	<a name="comment112090"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112090" class="content">
			
			О, на удивление неплохо.<br>
Впрочем, на mPAVR результаты хуже. Весь демо-проект — 775 слов (на PIC'е — 444 слова), функции:<br>
Lcd_Cmd: 98<br>
Lcd_Chr_CP: 12<br>
Lcd_Init: 279<br>
Lcd_Out: 65<br>
Интересно, это заслуга ядра/периферии PIC или у mPPIC оптимизатор намного лучше…<br>
<blockquote>Причем, любые ноги дисплея могут быть на любых (в том числе разных! ) портах. Задаются побитно:</blockquote>Да, биндинг в mP довольно удобно сделан. Хотя, возможно, работая с шиной данных на одном порту (и на идущих подряд битах) можно было бы еще уменьшить размер.
			</div>
	
	
							
		<div id="vote_area_comment_112090" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112090,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112090" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112090,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 11:46</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112090" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112090,112083); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112093">
		
		
<div id="comment_id_112093" class="comment not-admin ">
	<a name="comment112093"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112093" class="content">
			
			<blockquote>Интересно, это заслуга ядра/периферии PIC или у mPPIC оптимизатор намного лучше…</blockquote>Я использую МикроПаскаль и для PIC, и для AVR (в основном — PIC16 разные, из AVR — Меги 32, 64, 128).<br>
Давно заметил, что для PIC те же самые подпрограммы получаются в 1,5-2 раза короче не только по размеру кода, но и по количеству команд.<br>
<br>
В основном — из за большого количества стековых операций в коде для AVR (иногда до 20-30% кода, особенно на мелких функциях).<br>
В PIC нет надобности сохранять регистры в стеке из за их равноправия для команд. В AVR же из за наличия специфических обособленных групп регистров, выделенных только для некоторых команд, их постоянно приходится сохранять и извлекать при вызове подпрограмм и обработке прерываний.<br>
<br>
<blockquote>Хотя, возможно, работая с шиной данных на одном порту (и на идущих подряд битах) можно было бы еще уменьшить размер. </blockquote>Естественно, проще и быстрее всего будет вывод на индикатор в 8-проводном режиме, сразу байтом, с ногами на одном порту, идущими по порядку. Но это, как частный случай, можно просто оформить отдельной функцией, которая будет предельно простой.<br>
<br>
Чаще же удобнее универсальные решения, хоть они и больше и сложнее… Но иногда это — не главное, по сравнению с результатами. Особенно, если нет нормального порта со свободными ногами…
			</div>
	
	
							
		<div id="vote_area_comment_112093" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112093,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112093" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112093,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 13:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112093" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112093,112090); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112094">
		
		
<div id="comment_id_112094" class="comment not-admin ">
	<a name="comment112094"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112094" class="content">
			
			<blockquote>В PIC нет надобности сохранять регистры в стеке из за их равноправия для команд.</blockquote>Точнее из-за того, что там ровно один регистр (ну, и еще статусный).
			</div>
	
	
							
		<div id="vote_area_comment_112094" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112094,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112094" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112094,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 13:26</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112094" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112094,112093); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112097">
		
		
<div id="comment_id_112097" class="comment not-admin ">
	<a name="comment112097"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112097" class="content">
			
			<blockquote>Точнее из-за того, что там ровно один регистр (ну, и еще статусный). </blockquote>Точнее, не регистр, а скорее аккумулятор, — W, по аналогии с микропроцессорами.<br>
У AVR — в АЛУ фактически 32 аккумулятора. Да еще — поделенных на несколько групп, и многие команды работают только с некоторыми из них.<br>
<br>
В PIC — все регистры (ОЗУ, порты, служебные — с флагами и опциями периферии), — равноправны для всех команд. Выделенный же регистр W — (аккумулятор) в основном используется для временного хранения константы при операциях с константами, и еще некоторых действий, которые без него потребовали бы лишних операций или пересылок.<br>
<br>
Ну, а статус — надо сохранять в любом процессоре, но только для обработки прерываний. Также в прерываниях у PIC обычно сохраняют и W (если он используется в самом обработчике прерывания). <br>
Причем компилятор МикроПаскаля делает это сам, в программе явно этого делать не нужно.<br>
<br>
При вызове же подпрограмм (процедур и функций), обычно сохранять ни статус, ни W, — не требуется.
			</div>
	
	
							
		<div id="vote_area_comment_112097" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112097,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112097" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112097,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 13:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112097" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112097,112094); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112098">
		
		
<div id="comment_id_112098" class="comment not-admin ">
	<a name="comment112098"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112098" class="content">
			
			<blockquote>Точнее, не регистр, а скорее аккумулятор, — W, по аналогии с микропроцессорами.</blockquote>Аккумулятор — разновидность регистра. Ну и микропроцессор от микроконтроллера отличается только назначением, так что аналогия не уместна — это одно и то же. К тому же, в популярных ныне микропроцессорах ARM — 16 РОН (на самом деле 14, впрочем).<br>
<blockquote>В PIC — все регистры (ОЗУ, порты, служебные — с флагами и опциями периферии), — равноправны для всех команд.</blockquote>Я бы это назвал не регистрами, а оперативной памятью. Да и сам микрочип называет их RAM.<br>
<blockquote>Причем компилятор МикроПаскаля делает это сам, в программе явно этого делать не нужно.</blockquote>Это стандартное поведение для компиляторов, было бы странно, если бы оно было не так (тем более что средствами языка это и не сделать).<br>
<blockquote>При вызове же подпрограмм (процедур и функций), обычно сохранять ни статус, ни W, — не требуется.</blockquote>В принципе, у процессоров с регистровым файлом он зачастую тоже не сохраняется, по крайней мере целиком. Хотя там много вариантов, в зависимости от условий и соглашения о вызовах.
			</div>
	
	
							
		<div id="vote_area_comment_112098" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112098,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112098" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112098,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 13:56</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112098" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112098,112097); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112099">
		
		
<div id="comment_id_112099" class="comment not-admin ">
	<a name="comment112099"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112099" class="content">
			
			<blockquote>Аккумулятор — разновидность регистра. Ну и микропроцессор от микроконтроллера отличается только назначением, так что аналогия не уместна — это одно и то же.</blockquote>Не совсем. Скорее, аккумулятор — это одна из основных частей АЛУ, тесно связанная с его логикой и статусными флагами, в отличие от группы «регистров общего назначения», функции которых по сравнению с аккумулятором были сильно урезаны. Зато, например, у Моторолловского 6800 — было аж целых 2 равноправных аккумулятора — A и B.<br>
<blockquote>Я бы это назвал не регистрами, а оперативной памятью. Да и сам микрочип называет их RAM.</blockquote>С точки зрения команд в PIC, — регистры портов, спецрегистры, регистры RAM — едины, находятся в общем адресном поле, поделенном на банки, частично дублируются в разных банках…<br>
<br>
То есть, конкретной команде пофигу, с чем она работает.<br>
<br>
А вот W — на особом положении. Он в это адресное пространство не входит, и обращение к нему особое.<br>
так что W — не просто регистр, а именно аккумулятор в обычном понимании. Почему его назвали иначе — тут скорее всякие патентные ограничения…<br>
<blockquote>Это стандартное поведение для компиляторов, было бы странно, если бы оно было не так (тем более что средствами языка это и не сделать).</blockquote>Да без проблем. Достаточно вставить ассемблерную вставку из нескольких команд, которые скомпилируются без изменения.<br>
Да и Паскалевские аналоги некоторых ассемблерных команд (например, записать константу или переменную в регистр или порт) — компилируются в такие же ассемблерные команды без дополнений. Я часто этим пользуюсь, вместо библиотечных функций, например, чтобы включить 9-битный режим USART просто установкой нужного флага, а не полной переинициализацией USART.<br>
<blockquote>В принципе, у процессоров с регистровым файлом он зачастую тоже не сохраняется, по крайней мере целиком. Хотя там много вариантов, в зависимости от условий и соглашения о вызовах. </blockquote>Это естественно, просто я имел в виду, что вижу много стековых команд при просмотре листинга, скомпилированного для AVR.
			</div>
	
	
							
		<div id="vote_area_comment_112099" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112099,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112099" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112099,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 14:27</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112099" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112099,112098); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112101">
		
		
<div id="comment_id_112101" class="comment not-admin ">
	<a name="comment112101"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112101" class="content">
			
			<blockquote>Не совсем. Скорее, аккумулятор — это одна из основных частей АЛУ, тесно связанная с его логикой и статусными флагами, в отличие от группы «регистров общего назначения», функции которых по сравнению с аккумулятором были сильно урезаны.</blockquote>Я бы так не сказал. Во первых, файл РОН не менее тесно связан с АЛУ (типарегистры MCS51 в расчет не берем, у него тоже из полноправных регистров только A) и не меньше связан с логикой и статусными флагами, во вторых выполняет те же функции. У многих архитектур все регистры равноправны (у AVR есть ограничения из-за, во первых, регистров XYZ, а во вторых — в некоторых командах не хватает бит для адресации всех регистров и адресуется только верхняя половина или четверть файла).<br>
<blockquote>С точки зрения команд в PIC, — регистры портов, спецрегистры, регистры RAM — едины, находятся в общем адресном поле, поделенном на банки, частично дублируются в разных банках…</blockquote>Это, опять же, типично. SFR у большинства архитектур расположены в выделенной области RAM и для процессора ничем от нее не отличаются. W, разумеется, отличается — это единственный рабочий регистр самого процессора. Файловый регистр тоже на особых правах (хотя иногда его маппят и на ОЗУ, но это не более чем маппинг), отличие от акумулятора разве что одно — к РФ неприменима неявная адресация.<br>
Нетипично в PIC только одно — это не store-n-load архитектура, как большинство RISC'ов, он умеет работать непосредственно с ОЗУ (у LnS с ОЗУ работают только команды пересылки, все остальное — только с регистрами).<br>
<blockquote>Да без проблем. Достаточно вставить ассемблерную вставку из нескольких команд, которые скомпилируются без изменения.</blockquote>Это уже не относится к средствам языка.<br>
<blockquote>Это естественно, просто я имел в виду, что вижу много стековых команд при просмотре листинга, скомпилированного для AVR.</blockquote>Это скорее объясняется тем, что на AVR mP использует стек для хранения данных, а на PIC и MCS51 — нет (а на пике его и нет, собственно).
			</div>
	
	
							
		<div id="vote_area_comment_112101" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112101,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112101" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112101,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 14:56</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112101" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112101,112099); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112120">
		
		
<div id="comment_id_112120" class="comment not-admin ">
	<a name="comment112120"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112120" class="content">
			
			<blockquote>а на пике его и нет, собственно</blockquote>Ну это до 24-х серий. На 24-х там программный стек, и регистровый файл на 16 регистров.
			</div>
	
	
							
		<div id="vote_area_comment_112120" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112120,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112120" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112120,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Satellite/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(5).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Satellite/">Satellite</a></li>
		<li class="date">27 июня 2013, 17:57</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112120" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112120,112101); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112121">
		
		
<div id="comment_id_112121" class="comment not-admin ">
	<a name="comment112121"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112121" class="content">
			
			А каким боком 16-ти битный PIC относиться к к 8-ми битникам?
			</div>
	
	
							
		<div id="vote_area_comment_112121" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112121,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112121" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112121,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(6).gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
		<li class="date">27 июня 2013, 18:01</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112121" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112121,112120); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112124">
		
		
<div id="comment_id_112124" class="comment not-admin ">
	<a name="comment112124"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112124" class="content">
			
			А они mPPIC и не поддерживаются. Это другое ядро с другими компиляторами (есть еще mPdsPIC, может он поддерживает).
			</div>
	
	
							
		<div id="vote_area_comment_112124" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112124,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112124" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112124,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 18:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112124" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112124,112120); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_112100">
		
		
<div id="comment_id_112100" class="comment not-admin ">
	<a name="comment112100"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112100" class="content">
			
			<blockquote>короче не только по размеру кода, но и по количеству команд</blockquote> Улыбнуло=)
			</div>
	
	
							
		<div id="vote_area_comment_112100" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112100,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112100" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112100,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(6).gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
		<li class="date">27 июня 2013, 14:54</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112100" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112100,112093); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112102">
		
		
<div id="comment_id_112102" class="comment not-admin ">
	<a name="comment112102"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112102" class="content">
			
			Почему? Довольно существенное уточнение, учитывая что у младших пиков 12-битное слово, а у AVR — 16-битное. 1024 команды PIC по размеру соответствуют всего лишь 896 командам AVR.
			</div>
	
	
							
		<div id="vote_area_comment_112102" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112102,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112102" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112102,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 14:58</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112102" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112102,112100); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112103">
		
		
<div id="comment_id_112103" class="comment not-admin ">
	<a name="comment112103"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112103" class="content">
			
			<blockquote>1024 команды PIC по размеру соответствуют всего лишь 896 командам AVR.</blockquote>Упс, это относится к PIC'ам с 14-битным словом, а не 12-битным. У PIC12 1024 команды весят столько же, сколько у AVR 768 команд (условно, не считая двусловных команд и данных в флеше).
			</div>
	
	
							
		<div id="vote_area_comment_112103" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112103,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112103" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112103,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 15:00</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112103" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112103,112102); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112104">
		
		
<div id="comment_id_112104" class="comment not-admin ">
	<a name="comment112104"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112104" class="content">
			
			А байт у пиков сколько бит?
			</div>
	
	
							
		<div id="vote_area_comment_112104" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112104,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112104" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112104,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(6).gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
		<li class="date">27 июня 2013, 15:02</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112104" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112104,112102); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112107">
		
		
<div id="comment_id_112107" class="comment not-admin ">
	<a name="comment112107"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112107" class="content">
			
			Стандартный, восьмибитный.
			</div>
	
	
							
		<div id="vote_area_comment_112107" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112107,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112107" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112107,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 15:59</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112107" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112107,112104); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112110">
		
		
<div id="comment_id_112110" class="comment not-admin ">
	<a name="comment112110"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112110" class="content">
			
			А в памяти программ???
			</div>
	
	
							
		<div id="vote_area_comment_112110" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112110,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112110" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112110,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(6).gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
		<li class="date">27 июня 2013, 17:15</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112110" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112110,112107); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112117">
		
		
<div id="comment_id_112117" class="comment not-admin ">
	<a name="comment112117"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112117" class="content">
			
			<blockquote>А в памяти программ??? </blockquote>У PIC16 — слово памяти программ 14 бит. Но в отличие от AVR, они занимают один адрес, читаются сразу 14 в одном такте, потому часто считаются за байт. При сохранении констант в памяти программ они занимают 8 бит из 14, но тоже 1 адрес. Поэтому например у PIC16F876 c 8К памяти программ это однозначно 8192 команды, а у Меги 8 также с 8К памяти — не более 4096, и адресация команд в AVR идет через байт, у сохраненных же данных в памяти программ — побайтно, что вносит некоторую путаницу.<br>
Кроме того, у AVR есть и команды длиннее 2х байт…<br>
<br>
Когда я писал про разницу команд в листингах для PIC и AVR, я имел в виду разницу в откомпилированном в МикроПаскале под соответствующий контроллер ассемблерном листинге, соответственно, количесто ассемблерных команд в однотипных процедурах.<br>
<br>
Например, послать байт в UART, или считать принятый. У AVR ассемблерных команд на это получалось больше. В том числе, присутствовали и команды работы со стеком.
			</div>
	
	
							
		<div id="vote_area_comment_112117" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112117,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112117" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112117,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 17:39</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112117" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112117,112110); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112119">
		
		
<div id="comment_id_112119" class="comment not-admin ">
	<a name="comment112119"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112119" class="content">
			
			Сарказм детектед. Про то и разговор, что размер файла и число инструкций в обоих контроллерах прямопропорционален=)
			</div>
	
	
							
		<div id="vote_area_comment_112119" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112119,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112119" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112119,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(6).gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
		<li class="date">27 июня 2013, 17:57</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112119" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112119,112117); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112127">
		
		
<div id="comment_id_112127" class="comment not-admin ">
	<a name="comment112127"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112127" class="content">
			
			Логично, но при этом программа для пика может быть длиннее в командах, но меньше в байтах. А если еще и сравнивать длину программы для пика в его словах с длиной программы для AVR в байтах…
			</div>
	
	
							
		<div id="vote_area_comment_112127" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112127,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112127" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112127,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 18:33</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112127" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112127,112119); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112125">
		
		
<div id="comment_id_112125" class="comment not-admin ">
	<a name="comment112125"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112125" class="content">
			
			<blockquote>Поэтому например у PIC16F876 c 8К памяти программ это однозначно 8192 команды, а у Меги 8 также с 8К памяти — не более 4096</blockquote>Тут стоит заметить, что это 8К разных единиц. У меги с 8Kw (atmega16*) памяти тоже влезет 8К команд (точнее меньше — некоторые команды двухсловные, плата за линейное АП RAM — зато исключаются команды переключения банков).<br>
<blockquote>Например, послать байт в UART, или считать принятый. У AVR ассемблерных команд на это получалось больше.</blockquote>Это довольно забавно, учитывая, что у AVR вроде как больше команд и теоретически то же самое можно сделать меньшим их числом (иначе неясно, зачем их столько плодить).
			</div>
	
	
							
		<div id="vote_area_comment_112125" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112125,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112125" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112125,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 18:29</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112125" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112125,112117); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112146">
		
		
<div id="comment_id_112146" class="comment not-admin ">
	<a name="comment112146"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112146" class="content">
			
			<blockquote>Это довольно забавно, учитывая, что у AVR вроде как больше команд и теоретически то же самое можно сделать меньшим их числом (иначе неясно, зачем их столько плодить). </blockquote>Сам удивлялся… Причем я имел в виду разницу именно в количестве команд в подпрограмме, а не занимаемые ими адреса. С учетом 2х байтовых команд AVR, по адресам разница будет еще больше.<br>
<br>
Что касается часто указываемых в списке характеристик обьемах памяти программ, то у PIC обычно просто пишут 2к, 4к, 8к. не всегда упоминая, что это в 14-битных словах. Чисто в байтах (как например это показывают программаторы PIC), — будет вдвое больше. Но раньше у PIC16 больше 8к слов и небыло. Только в PIC18 недавно появилось и 32К, и вроде даже 64К (не помню точно).<br>
<br>
Но мне на PICах часто и 4К — за глаза, хватает. Например, в PIC16F873. Хоть я чаще ставлю 876 с 8К, — по цене они почти одинаковы. А вот на AVR когда меньше 16 Кб — как-то чувствую себя не очень уверенно… Так и хочется Мегу 16 на 32 сменить… Тем более, что имею обе. Но 32 — заметно (у нас) дороже.
			</div>
	
	
							
		<div id="vote_area_comment_112146" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112146,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112146" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112146,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 19:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112146" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112146,112125); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112147">
		
		
<div id="comment_id_112147" class="comment not-admin ">
	<a name="comment112147"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112147" class="content">
			
			<blockquote>Так и хочется Мегу 16 на 32 сменить…</blockquote>Народ обычно вообще предпочитает мегу8. Те самые 4к слов, кстати.<br>
<blockquote>Чисто в байтах (как например это показывают программаторы PIC), — будет вдвое больше.</blockquote>В 1.75. Когда смотришь прайсы контор, где размер памяти пиков указан в байтах — крышу сносит. Вечно что-то вроде «5.685КБ флэш, 743Б ОЗУ». Алсо, размер слова еще и разный бывает — скажем, у части PIC12 слово 12-битное. Так что еще и не сразу поймешь каким коэффициентом эти килобайты в слова переводить.
			</div>
	
	
							
		<div id="vote_area_comment_112147" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112147,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112147" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112147,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">27 июня 2013, 19:48</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112147" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112147,112146); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112159">
		
		
<div id="comment_id_112159" class="comment not-admin ">
	<a name="comment112159"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112159" class="content">
			
			<blockquote>Народ обычно вообще предпочитает мегу8. Те самые 4к слов, кстати.</blockquote>Не, у Меги 8 разводка паршивая. Порты не по порядку, все перепутано… И трудно цельнобайтовый порт выделить. Я ее только для повторения чужих устройств использую (например, определитель компонентов).<br>
<br>
В своих разработках я предпочитаю ей PIC16F873, 876. Все почти то же самое (по начинке), и тоже 28 ног, зато — ноги по порядку.<br>
<br>
Вот у Мег 16 и 32 — прядка в ногах гораздо больше. Но 40 ног иногда — многовато…<br>
<br>
<blockquote>Так что еще и не сразу поймешь каким коэффициентом эти килобайты в слова переводить. </blockquote>Да там и думать нечего. У них стандартный ряд — 512 слов, 1К, 2К, 4К, 8К. Больше 8К слов появились сравнительно недавно. А поскольку одна команда — один адрес, то пофигу, сколько там бит.<br>
И, как правило, для каждого размера корпуса есть микросхемы с разным обьемом памяти, которые легко заменяются. Например, PIC16F873-876, PIC16F874-877, PIC16F627-628, и так далее. <br>
<br>
Так же у старых микросхем есть более современная замена, с той же цоколевкой, но большими возможностями.<br>
Например, PIC16F84 в уже готовой плате легко сменить на PIC16F628, но у 628 кроме того что было в 84, есть еще компараторы, ШИМ, UART, дополнительный таймер…
			</div>
	
	
							
		<div id="vote_area_comment_112159" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112159,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112159" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112159,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">27 июня 2013, 20:51</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112159" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112159,112147); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112187">
		
		
<div id="comment_id_112187" class="comment not-admin ">
	<a name="comment112187"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112187" class="content">
			
			Вы так уверенно говорите что у авр команду 2 байта минимум занимают, что я верю вам больше чем атмелу.
			</div>
	
	
							
		<div id="vote_area_comment_112187" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112187,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112187" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112187,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/angel5a/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/angel5a/">angel5a</a></li>
		<li class="date">28 июня 2013, 11:38</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112187" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112187,112117); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112197">
		
		
<div id="comment_id_112197" class="comment not-admin ">
	<a name="comment112197"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112197" class="content">
			
			<blockquote>Вы так уверенно говорите что у авр команду 2 байта минимум занимают, что я верю вам больше чем атмелу. </blockquote>Назовите хоть одну однобайтную команду у AVR.<br>
Даже у NOP — код 16 бит.<br>
<br>
А вот 4 байта — бывают. Например, всем известные и широко используемые CALL, JMP…<br>
<br>
Обычно я стараюсь не писать то, в чем не уверен. Или оговариваю, что точно не помню.
			</div>
	
	
							
		<div id="vote_area_comment_112197" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112197,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112197" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112197,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/SWG/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(2).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/SWG/">SWG</a></li>
		<li class="date">28 июня 2013, 12:34</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112197" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112197,112187); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112216">
		
		
<div id="comment_id_112216" class="comment not-admin ">
	<a name="comment112216"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112216" class="content">
			
			Тю млин, совсем забыл уже. Прошу прощения, был не прав.
			</div>
	
	
							
		<div id="vote_area_comment_112216" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112216,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112216" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112216,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/angel5a/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/angel5a/">angel5a</a></li>
		<li class="date">28 июня 2013, 17:06</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112216" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112216,112197); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112199">
		
		
<div id="comment_id_112199" class="comment not-admin ">
	<a name="comment112199"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112199" class="content">
			
			<blockquote>у авр команду 2 байта минимум занимают</blockquote><br>
а разве не так? какие есть однобайтные команды (про Хэ-меги не говорю, я про них ничего не знаю:)?
			</div>
	
	
							
		<div id="vote_area_comment_112199" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112199,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112199" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112199,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/podkassetnik/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/podkassetnik/">podkassetnik</a></li>
		<li class="date">28 июня 2013, 12:50</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112199" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112199,112187); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112203">
		
		
<div id="comment_id_112203" class="comment not-admin ">
	<a name="comment112203"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112203" class="content">
			
			<blockquote>Вы так уверенно говорите что у авр команду 2 байта минимум занимают, что я верю вам больше чем атмелу.</blockquote>А разве атмел говорит не то же самое? У них даже PC адресует флеш словами, поэтому поддерживают до 128кб флеша без разбития на банки.
			</div>
	
	
							
		<div id="vote_area_comment_112203" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112203,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112203" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112203,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">28 июня 2013, 13:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112203" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112203,112187); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div></div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111921">
		
		
<div id="comment_id_111921" class="comment not-admin ">
	<a name="comment111921"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111921" class="content">
			
			Сырая библиотека… Чтобы её прикрутить надо или подробную документацию к ней, или читать исходники…<br>
Одни плюс, может кто нибудь из тех, у кого подобная библиотека есть и написана красиво, посмотрев на эту, решится выложить свою…
			</div>
	
	
							
		<div id="vote_area_comment_111921" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111921,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111921" class="total">+2</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111921,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Sicorski/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Sicorski/">Sicorski</a></li>
		<li class="date">24 июня 2013, 23:10</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111921" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111933">
		
		
<div id="comment_id_111933" class="comment not-admin ">
	<a name="comment111933"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111933" class="content">
			
			Может выложишь? Интересно будет посмотреть.
			</div>
	
	
							
		<div id="vote_area_comment_111933" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111933,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111933" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111933,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:27</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111933" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111933,111921); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111998">
		
		
<div id="comment_id_111998" class="comment not-admin ">
	<a name="comment111998"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111998" class="content">
			
			Давай через личку её обсудим, потом посмотрим, выкладывать или как… Моя тоже не отточена до совершенства…
			</div>
	
	
							
		<div id="vote_area_comment_111998" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111998,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111998" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111998,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Sicorski/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Sicorski/">Sicorski</a></li>
		<li class="date">25 июня 2013, 22:38</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111998" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111998,111933); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111924">
		
		
<div id="comment_id_111924" class="comment not-admin ">
	<a name="comment111924"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111924" class="content">
			
			LCDstring_of_flush правильно надо писать flash<br>
а flush это смыв в сортире
			</div>
	
	
							
		<div id="vote_area_comment_111924" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111924,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111924" class="total">+5</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111924,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/">kalobyte-ya</a></li>
		<li class="date">25 июня 2013, 00:26</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111924" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111925">
		
		
<div id="comment_id_111925" class="comment not-admin ">
	<a name="comment111925"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111925" class="content">
			
			<a href="https://www.google.by/search?q=iostream+flush&ie=utf-8&oe=utf-8" rel="nofollow">Вот именно так и смываются потоки в C++.</a><br>
<a href="https://www.google.by/search?q=C+FILE+fflush&ie=utf-8&oe=utf-8" rel="nofollow">Да и в C тоже.</a><br>
Уж не знаю, в сортире или как ещё, гражданину kalobyte должно быть лучше всех известно.
			</div>
	
	
							
		<div id="vote_area_comment_111925" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111925,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111925" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111925,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/EW1UA/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(7).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/EW1UA/">EW1UA</a></li>
		<li class="date">25 июня 2013, 00:46</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111925" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111925,111924); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111927">
		
		
<div id="comment_id_111927" class="comment not-admin ">
	<a name="comment111927"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111927" class="content">
			
			Но ведь в данном случае <a href="http://we.easyelectronics.ru/profile/kalobyte-ya/" class="ls-user">kalobyte-ya</a> прав, в названии функции действительно ошибка/опечатка. Функция выводит строку из флеш-памяти (flash), а не очищает поток ввода/вывода (flush). <br>
<br>
Да и вообще с английским у автора некоторые проблемы (как и у меня с русским :) но это к теме не относится.
			</div>
	
	
							
		<div id="vote_area_comment_111927" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111927,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111927" class="total">+4</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111927,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/e_mc2/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(8).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/e_mc2/">e_mc2</a></li>
		<li class="date">25 июня 2013, 01:14</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111927" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111927,111925); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111943">
		
		
<div id="comment_id_111943" class="comment not-admin ">
	<a name="comment111943"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111943" class="content">
			
			Прав он и насчет flush'а, у потоков это тоже смыв содержимого из кэша в файл. Вполне даже неплохая канализационная аналогия в стиле ДиХалта получается.
			</div>
	
	
							
		<div id="vote_area_comment_111943" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111943,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111943" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111943,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 09:39</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111943" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111943,111927); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111932">
		
		
<div id="comment_id_111932" class="comment not-admin ">
	<a name="comment111932"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111932" class="content">
			
			Исправил, правда пока только в тексте. Вечером везде исправлю.
			</div>
	
	
							
		<div id="vote_area_comment_111932" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111932,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111932" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111932,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:26</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111932" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111932,111924); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111945">
		
		
<div id="comment_id_111945" class="comment not-admin ">
	<a name="comment111945"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111945" class="content">
			
			Для однообразия с avr-libc стоило бы их назвать в ее стиле — LCDString и LCDString_P. of_flash длинно и некорректно (корректней from_flash).
			</div>
	
	
							
		<div id="vote_area_comment_111945" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111945,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111945" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111945,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 09:45</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111945" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111945,111932); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111934">
		
		
<div id="comment_id_111934" class="comment not-admin ">
	<a name="comment111934"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111934" class="content">
			
			Исправил, но пока только в тексте, вечером везде исправлю.
			</div>
	
	
							
		<div id="vote_area_comment_111934" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111934,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111934" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111934,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:28</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111934" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111934,111924); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_111937">
		
		
<div id="comment_id_111937" class="comment not-admin ">
	<a name="comment111937"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111937" class="content">
			
			Исправил.
			</div>
	
	
							
		<div id="vote_area_comment_111937" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111937,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111937" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111937,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:36</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111937" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111937,111924); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111926">
		
		
<div id="comment_id_111926" class="comment not-admin ">
	<a name="comment111926"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111926" class="content">
			
			<blockquote>Так что качайте, выводите свои каракули на дисплей и радуйтесь. </blockquote><br>
<a href="http://we.easyelectronics.ru/profile/Papandopala/" class="ls-user">Papandopala</a> , Вы не обижайтесь, но все же я бы рекомендовал Вам сначала хорошо освоить язык С, а потом уже писать подобные статьи в тематический блог.<br>
<br>
Понимаете, в вопросе обучения (как и в медицине), главный принцип — «не навредить». А у Вас код далек от идеала (как в вопросе проектирования API, так и в реализации самой библиотеки) и брать с него пример — не лучшая идея. Работать такая библиотека будет, но врядли ее стоит размещать в тематическом блоге, тем более что существует множество более удачных примеров кода для работы с HD44780.<br>
<br>
Ничего личного, просто я действительно считаю, что размещать подобный код в тематическом блоге — не лучшая идея.
			</div>
	
	
							
		<div id="vote_area_comment_111926" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111926,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111926" class="total">+2</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111926,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/e_mc2/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(8).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/e_mc2/">e_mc2</a></li>
		<li class="date">25 июня 2013, 00:55</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111926" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111930">
		
		
<div id="comment_id_111930" class="comment not-admin ">
	<a name="comment111930"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111930" class="content">
			
			<blockquote>существует множество более удачных примеров кода для работы с HD44780.</blockquote>Можно какой нибудь конкретный пример, чтоб посмотреть?
			</div>
	
	
							
		<div id="vote_area_comment_111930" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111930,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111930" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111930,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:06</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111930" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111930,111926); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111956">
		
		
<div id="comment_id_111956" class="comment not-admin ">
	<a name="comment111956"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111956" class="content">
			
			Вот <a href="http://www.johanekdahl.se/rwiki/doku.php?id=resources:avr_resources" rel="nofollow">здесь</a> есть ссылки на самые популярные библиотеки для HD-44780. Сказать какая из них самая лучшая — тяжело, т. к. они отличаются по функциям и реализации.
			</div>
	
	
							
		<div id="vote_area_comment_111956" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111956,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111956" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111956,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/e_mc2/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(8).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/e_mc2/">e_mc2</a></li>
		<li class="date">25 июня 2013, 12:31</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111956" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111956,111930); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111938">
		
		
<div id="comment_id_111938" class="comment not-admin ">
	<a name="comment111938"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111938" class="content">
			
			Все чета только и говорят что есть лучше, бла бла бла, так хоть бы тогда одну ссылку скинули. Я например не смог найти <em>лучшую</em> в свое время когда искал. Это тоже одна из причин почему решил для себя написать сам.
			</div>
	
	
							
		<div id="vote_area_comment_111938" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111938,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111938" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111938,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:43</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111938" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111938,111926); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111939">
		
		
<div id="comment_id_111939" class="comment not-admin ">
	<a name="comment111939"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111939" class="content">
			
			<blockquote>но все же я бы рекомендовал Вам сначала хорошо освоить язык С</blockquote>У меня не было возможности учиться в институте 5 лет языку си. Поэтому получается так как сам понимаю на данный момент времени. Я например нарыл таки довольно много сайтов по языку си. Но это просто теория объясняющая синтаксис ну и прочее. А чтоб найти что то, где бы объяснялся стиль написания, общие принципы построения чета пока никак.
			</div>
	
	
							
		<div id="vote_area_comment_111939" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111939,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111939" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111939,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 08:50</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111939" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111939,111938); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111944">
		
		
<div id="comment_id_111944" class="comment not-admin ">
	<a name="comment111944"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111944" class="content">
			
			<blockquote>А чтоб найти что то, где бы объяснялся стиль написания, общие принципы построения чета пока никак.</blockquote>В книжках «блаблабла С» и «блаблабла С++» ты этого и не найдешь. Надо читать книжки по общим вопросам программирования и проектирования. Такие, как «Искусство программирования» Кнута, «Алгоритмы+структуры данных=программы» Вирта, «Паттерны проектирования» GOF и так далее.
			</div>
	
	
							
		<div id="vote_area_comment_111944" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111944,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111944" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111944,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 09:43</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111944" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111944,111939); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_111947">
		
		
<div id="comment_id_111947" class="comment not-admin ">
	<a name="comment111947"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111947" class="content">
			
			От себя посоветую «Совершенный код» Макконела. <br>
Ну и можно примеры хорошего кода посмотреть. На С таких примеров много в ядре Linux.
			</div>
	
	
							
		<div id="vote_area_comment_111947" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111947,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111947" class="total">+2</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111947,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/CodeRush/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(9).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/CodeRush/">CodeRush</a></li>
		<li class="date">25 июня 2013, 10:02</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111947" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111947,111939); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111950">
		
		
<div id="comment_id_111950" class="comment not-admin ">
	<a name="comment111950"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111950" class="content">
			
			Кстати да, про него я незаслуженно забыл.<br>
Ну и еще весьма любопытная вещь — «Жемчужины программирования» Джона Бентли.
			</div>
	
	
							
		<div id="vote_area_comment_111950" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111950,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111950" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111950,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 11:00</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111950" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111950,111947); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111952">
		
		
<div id="comment_id_111952" class="comment not-admin ">
	<a name="comment111952"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111952" class="content">
			
			За книги спасибо, вечером накачаю начну читать.
			</div>
	
	
							
		<div id="vote_area_comment_111952" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111952,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111952" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111952,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 11:12</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111952" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111952,111950); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111964">
		
		
<div id="comment_id_111964" class="comment not-admin ">
	<a name="comment111964"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111964" class="content">
			
			<a href="http://www.intuit.ru/" rel="nofollow">www.intuit.ru</a> не?
			</div>
	
	
							
		<div id="vote_area_comment_111964" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111964,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111964" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111964,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Satellite/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(5).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Satellite/">Satellite</a></li>
		<li class="date">25 июня 2013, 14:28</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111964" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111964,111939); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111969">
		
		
<div id="comment_id_111969" class="comment not-admin ">
	<a name="comment111969"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111969" class="content">
			
			Угу, фильтруем по тегу C :<a href="http://www.intuit.ru/studies/courses?page=1&service=2&option_id=225" rel="nofollow">бабушка и несколько преподов(интересно что они сами написали?) + еб… чий MS</a> быстро введут любого в мир Си, для начала плодотворного говнокодирования.
			</div>
	
	
							
		<div id="vote_area_comment_111969" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111969,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111969" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111969,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/well-man2000/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/well-man2000/">well-man2000</a></li>
		<li class="date">25 июня 2013, 15:25</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111969" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111969,111964); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111987">
		
		
<div id="comment_id_111987" class="comment not-admin ">
	<a name="comment111987"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111987" class="content">
			
			Бабушки бывают <a href="http://ithappens.ru/story/564" rel="nofollow">крутые</a>.
			</div>
	
	
							
		<div id="vote_area_comment_111987" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111987,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111987" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111987,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 18:34</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111987" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111987,111969); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111988">
		
		
<div id="comment_id_111988" class="comment not-admin ">
	<a name="comment111988"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111988" class="content">
			
			Ну суть не в бабушке, а в том, что эти курсы в основном не учат программированию на Си(тем более эмбеддеров, т.е. «высшую рассу» кодеров), а в основном все это — компиляция «даташита» на язык Си.
			</div>
	
	
							
		<div id="vote_area_comment_111988" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111988,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111988" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111988,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/well-man2000/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/well-man2000/">well-man2000</a></li>
		<li class="date">25 июня 2013, 18:40</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111988" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111988,111987); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111965">
		
		
<div id="comment_id_111965" class="comment not-admin ">
	<a name="comment111965"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111965" class="content">
			
			я тоже в быдловузе год осилил, но изучал сам и начал в пту и еще раньше<br>
просто нужна практика и что ты написал свою библиотеку — это самое полезное<br>
нужно только ставить цели<br>
например у меня есть библиотека для этого индикатора, которую правил я для минимизации кода и она несколько неудобна, но зато мало жрет<br>
а есть большая библиотека для кучи индикаторов и с ней просто работать, но она и жрет прилично
			</div>
	
	
							
		<div id="vote_area_comment_111965" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111965,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111965" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111965,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/">kalobyte-ya</a></li>
		<li class="date">25 июня 2013, 14:29</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111965" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111965,111939); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111970">
		
		
<div id="comment_id_111970" class="comment not-admin ">
	<a name="comment111970"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111970" class="content">
			
			почему здесь не запостил статьи — говнокод наверное, ссыканул? <br>
<br>
P.S. Нужен платный ресурс, где 4-5 гуру будут шлифовать код говнокодеров. Выкладываешь код в закрытую ветку, плата $100-200 за 100-200 допустим строк кода, например. Гуру там пинают тебя со всех сторон и указывают как и что переписать — на выходе имеем удобоваримый код + обучение для нуба. Можно и за $5-20, но тогда можно открывать доступ желающим посмотреть действо, за плату, естественно — тоже $5-20.
			</div>
	
	
							
		<div id="vote_area_comment_111970" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111970,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111970" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111970,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/well-man2000/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/well-man2000/">well-man2000</a></li>
		<li class="date">25 июня 2013, 15:55</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111970" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111970,111965); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111971">
		
		
<div id="comment_id_111971" class="comment not-admin ">
	<a name="comment111971"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111971" class="content">
			
			Сколько <s>врачей</s>гуру, столько и мнений.
			</div>
	
	
							
		<div id="vote_area_comment_111971" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111971,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111971" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111971,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/EW1UA/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(7).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/EW1UA/">EW1UA</a></li>
		<li class="date">25 июня 2013, 16:10</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111971" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111971,111970); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111973">
		
		
<div id="comment_id_111973" class="comment not-admin ">
	<a name="comment111973"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111973" class="content">
			
			Надо переводить это все говнокодирование и гениальное кодирование на промышленные рельсы конвеерного пр-ва с гарантированным средним качеством, но с невысокими затратами на трудоемкость для конкретного чела — гуру западло много писать, тем более массового, заурядного кода, а начинающему говнокодеру в радость пописать/попереписывать(тем более ему за это заплатят или он это как-то захочет окупить). Здесь еще надо ввести 3-е действующее лицо — вообще нуба, но заказчика.
			</div>
	
	
							
		<div id="vote_area_comment_111973" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111973,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111973" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111973,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/well-man2000/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/well-man2000/">well-man2000</a></li>
		<li class="date">25 июня 2013, 16:58</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111973" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111973,111971); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111975">
		
		
<div id="comment_id_111975" class="comment not-admin ">
	<a name="comment111975"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111975" class="content">
			
			Как знать, возможно вы правы.<br>
Для должности «гуру» есть более официальное название&nbsp;— system architect. Например, Святослав Фёдоров был таким архитектором.<br>
<blockquote>Технологизация процесса подразумевает обязательное разделение труда и упрощение каждой отдельной операции до того уровня сложности, который доступен для обычного среднего исполнителя. В этом случае мы всегда сможем использовать в работе не уникальных, а совсем обычных людей. Они обходятся значительно дешевле, и ими проще управлять.<br>
Наш излюбленный пример технологизации бизнеса – «Макдональдс». Труд сотрудников там организован таким образом, что позволяет использовать на работе даже школьников. Что они с успехом и делают. А если у школьников «сносит крышу» – их увольняют пачками.</blockquote><blockquote>Но умение технологизировать прежде уникальные, ранее неповторимые процессы и есть основной труд создателя будущего успешного бизнеса.<br>
До академика Фёдорова операции на глазах могли делать единицы уникальных хирургов, и он вполне мог бы наслаждаться своей уникальностью и навсегда остаться пусть и высокооплачиваемым, но только хирургом. Но Федоров сумел перевести этот процесс на технологические рельсы. Используя диагностическое операционное оборудование, удалось поставить эти операции «на поток». Так родился огромный и серьезный бизнес, очень нетипичный для нашей страны.</blockquote><a href="http://www.ownerc.com/Owner-consulting-review-article2.html" rel="nofollow">Чем заменить делегирование? Коротко и по делу<br>
Из серии статей «Секреты управления компанией»</a>
			</div>
	
	
							
		<div id="vote_area_comment_111975" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111975,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111975" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111975,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/EW1UA/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(7).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/EW1UA/">EW1UA</a></li>
		<li class="date">25 июня 2013, 17:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111975" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111975,111973); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
									
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_111986">
		
		
<div id="comment_id_111986" class="comment not-admin ">
	<a name="comment111986"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111986" class="content">
			
			Эта статья рассказывает про низменные фокусы капитализма и учит в свою очередь новым низменным фокусам, при этом с интересом мы узнаем об изъянах капитализма — «эффективные менеджеры» с MBA дипломами, которые разрушают или уничтожают производства и кроме того, ради единоличных интересов, ухудшают жизнь об-ва в целом, например отходы чайного пр-ва в чайных пакетиках за двойную стоимость хорошего чая и т.п. И накрученные отчеты с нарисованной прибылью, т.е. хуже чем при застойном социализме. <br>
<br>
Человека не надо загонять в какие-то тупики — разбивать работу на простые кусочки и т.п., чтобы контроллировать и эксплуатировать марионеток, которым некуда деваться. Такая конвееризация должна иметь совершенно другие цели, тем более если все это ради интереса 1-го чела или кучки людей — это аморально и неправильно, а значит рано или поздно закончится полным крахом, когда градус забитости и недовольства состоянием марионеток достигнет предела.
			</div>
	
	
							
		<div id="vote_area_comment_111986" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111986,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111986" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111986,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/well-man2000/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/well-man2000/">well-man2000</a></li>
		<li class="date">25 июня 2013, 18:18</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111986" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111986,111975); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111974">
		
		
<div id="comment_id_111974" class="comment not-admin ">
	<a name="comment111974"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111974" class="content">
			
			<blockquote>почему здесь не запостил статьи — говнокод наверное, ссыканул?</blockquote>зачем это постить тут? даже в голову не приходило постить код библиотеки известного индикатора<br>
<br>
у меня свои критерии плохого кода, у другого свои<br>
имея какой-то опыт любой работы ты понимаеш, что были причины сделать плохо <br>
или так, а не этак, как обычно считается правильным<br>
<br>
реальные проекты и проекты для себя — 2 большие разницы
			</div>
	
	
							
		<div id="vote_area_comment_111974" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111974,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111974" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111974,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/kalobyte-ya/">kalobyte-ya</a></li>
		<li class="date">25 июня 2013, 17:09</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111974" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111974,111970); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111961">
		
		
<div id="comment_id_111961" class="comment not-admin ">
	<a name="comment111961"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111961" class="content">
			
			И о коде.<br>
Функции In, Out, Hi и прочие «системные». В хедере им делать абсолютно нечего — незачем замусоривать пространство имен вне модуля. К тому же, названия слишком короткие и общие, они не только не дают представления о том, что делают функции (в отличие от, скажем, SetPortToOut), но и конфликтуют со стандартными (Hi, например).<br>
Далее. Раскопипащенные строки вида "((1&lt;&lt;DB7)|(1&lt;&lt;DB6)|(1&lt;&lt;DB5)|(1&lt;&lt;DB4)|(1&lt;&lt;DB3)|(1&lt;&lt;DB2)|(1&lt;&lt;DB1)|(1&lt;&lt;DB0))". Это надо делать макросом вида #define PORT_MASK ((1&lt;&lt;DB7)|(1&lt;&lt;DB6)|(1&lt;&lt;DB5)|(1&lt;&lt;DB4)|(1&lt;&lt;DB3)|(1&lt;&lt;DB2)|(1&lt;&lt;DB1)|(1&lt;&lt;DB0)), причем — не в хедере. Впрочем, на AVR этот макрос всегда будет равен 0xFF, маска реально нужна только для 4-битного режима.<br>
Изобилие функций вида LCDblablabla(){LCDCommand(blabla)} разумней было заменить набором макросов команд #define LCD_CMD_CURSOR_OFF 0x0C и, соответсвенно, писать в коде LCDCommand(LCD_CMD_CURSOR_OFF). Впрочем, можно и наплодить макрофункций для этих задач, но сами команды все равно следует задавать константами.<br>
В ините зачем-то скопипащен кусок SendByte, которой и в самой дофига копипасты. Плюс, достаточно странный алгоритм инициализации, не соответствующий даташиту ни от HITACHI (разработчик контроллера), ни от винстара (наиболее популярный среди радиолюбителей производитель дисплеев).<br>
Перемешивание бит, конечно, в любом случае достаточно богатый на копипасту процесс, но можно было хотя бы вынести повторяющуюся часть в макрос (да и вообще, все повторяющееся следует выносить в макрос или функцию). Да и можно было вопользоваться более подходящей конструкцией "?:":<br>
<pre class="prettyprint"><code><span class="com">#define GET_BIT(inbit, outbit) (i &amp; (1 &lt;&lt; inbit) ? 1 &lt;&lt; outbit : 0) //вообще, можно обойтись только номером бита и вместо outbit использовать конструкцию вида DB##bit, но не помню, нужны ли какие-то дополнительные макросы, чтобы это правильно разворачивалось</span><span class="pln"><br>DPORT </span><span class="pun">=</span><span class="pln"> GET_BIT</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> DB0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">|</span><span class="pln"> GET_BIT</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> DB1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">|</span><span class="pln"> </span><span class="pun">..</span><span class="pln">.</span></code></pre><br>
Еще местами в #ifdef 8_BIT… #else… #endif можно обойтись без первого блока, который идентичен для обоих вариантов.
			</div>
	
	
							
		<div id="vote_area_comment_111961" class="voting positive guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111961,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111961" class="total">+1</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111961,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 13:12</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111961" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111962">
		
		
<div id="comment_id_111962" class="comment not-admin ">
	<a name="comment111962"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111962" class="content">
			
			Меня больше смущает, что автор при передергивании строба использует фиксированную задержку в 2 NOP. Есть подозрение, что на больших тактовых частотах экран не будет работать или будет работать нестабильно. В других проектах задержку (на NOP'ах) всеже коррелируют с тактовой. Например так<br>
<br>
<pre class="prettyprint"><code><span class="com">// if LCD_DELAY is not defined, this definition sequence</span><span class="pln"><br></span><span class="com">// attempts to find a suitable LCD_DELAY given the F_CPU</span><span class="pln"><br></span><span class="com">#ifndef LCD_DELAY</span><span class="pln"><br></span><span class="com">#if F_CPU &gt;= 16000000</span><span class="pln"><br></span><span class="com">#define LCD_DELAY &nbsp; &nbsp; &nbsp; asm volatile ("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n");</span><span class="pln"><br></span><span class="com">#else</span><span class="pln"><br></span><span class="com">#if F_CPU &gt;= 12000000</span><span class="pln"><br></span><span class="com">#define LCD_DELAY &nbsp; &nbsp; &nbsp; asm volatile ("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n");</span><span class="pln"><br></span><span class="com">#else</span><span class="pln"><br></span><span class="pun">..</span><span class="pln">.</span></code></pre>
			</div>
	
	
							
		<div id="vote_area_comment_111962" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111962,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111962" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111962,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/e_mc2/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(8).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/e_mc2/">e_mc2</a></li>
		<li class="date">25 июня 2013, 13:40</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111962" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111962,111961); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111972">
		
		
<div id="comment_id_111972" class="comment not-admin ">
	<a name="comment111972"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111972" class="content">
			
			а ещё лучше не считать нопы до ряби в глазах, а<br>
<pre class="prettyprint"><code><span class="pln">__delay_cycles</span><span class="pun">(</span><span class="pln">F_CPU </span><span class="pun">/</span><span class="pln"> </span><span class="lit">42</span><span class="pun">);</span></code></pre>
			</div>
	
	
							
		<div id="vote_area_comment_111972" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111972,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111972" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111972,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/amx/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/amx/">amx</a></li>
		<li class="date">25 июня 2013, 16:12</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111972" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111972,111962); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111978">
		
		
<div id="comment_id_111978" class="comment not-admin ">
	<a name="comment111978"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111978" class="content">
			
			Я просто привел пример из lcd.h avrlib для наглядности, идея считать NOPы мне тоже не нравится. Функция задержки лучше.
			</div>
	
	
							
		<div id="vote_area_comment_111978" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111978,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111978" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111978,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/e_mc2/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(8).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/e_mc2/">e_mc2</a></li>
		<li class="date">25 июня 2013, 17:46</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111978" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111978,111972); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_111982">
		
		
<div id="comment_id_111982" class="comment not-admin ">
	<a name="comment111982"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111982" class="content">
			
			<pre class="prettyprint"><code><span class="pln">__delay_cycles</span><span class="pun">(</span><span class="pln">F_CPU </span><span class="pun">/</span><span class="pln"> </span><span class="lit">42</span><span class="pun">);</span></code></pre> Эта функция отсюда? &lt;util/delay.h&gt;
			</div>
	
	
							
		<div id="vote_area_comment_111982" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111982,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111982" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111982,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 18:02</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111982" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111982,111972); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111985">
		
		
<div id="comment_id_111985" class="comment not-admin ">
	<a name="comment111985"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111985" class="content">
			
			<a href="http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html" rel="nofollow">www.nongnu.org/avr-libc/user-manual/group__util__delay.html</a>
			</div>
	
	
							
		<div id="vote_area_comment_111985" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111985,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111985" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111985,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/amx/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/amx/">amx</a></li>
		<li class="date">25 июня 2013, 18:08</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111985" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111985,111982); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111996">
		
		
<div id="comment_id_111996" class="comment not-admin ">
	<a name="comment111996"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111996" class="content">
			
			<blockquote>__delay_cycles(F_CPU / 42);</blockquote>Не работает чета. Компилятор вообще не знает откуда это. Есть в &lt;util/delay.h&gt; только __builtin_avr_delay_cycles(unsigned long);
			</div>
	
	
							
		<div id="vote_area_comment_111996" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111996,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111996" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111996,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 21:59</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111996" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111996,111972); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111980">
		
		
<div id="comment_id_111980" class="comment not-admin ">
	<a name="comment111980"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_111980" class="content">
			
			О интересная реализация. Надо это запомнить на будущее. Хотя да, я вот тоже все думаю что два нопа это мало. Я сейчас сел и посчитал, на 16 Мгц надо 8 нопов. А у меня два всего. Хотя на 16 Мгц работает, проверял.
			</div>
	
	
							
		<div id="vote_area_comment_111980" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111980,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111980" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111980,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 17:59</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111980" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111980,111962); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_111984">
		
		
<div id="comment_id_111984" class="comment not-admin ">
	<a name="comment111984"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111984" class="content">
			
			Неужели совсем все так плохо?
			</div>
	
	
							
		<div id="vote_area_comment_111984" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111984,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111984" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111984,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 18:06</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111984" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111984,111961); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111989">
		
		
<div id="comment_id_111989" class="comment not-admin ">
	<a name="comment111989"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111989" class="content">
			
			Не так давно я писал тут, что если код решает задачу — то это хороший код. С другой стороны — нет предела совершенству. Выбор за тобой — полировать или оставить как есть. Я только описал часть того, что сделал бы иначе.<br>
Но это чуть меньший ужас, чем код твоего «ПЛК». Наиболее неприятное — слишком большая область видимости некоторых вещей («системных» функций в частности), большие число магических чисел (для этого есть константы) и много копипасты.<br>
И все же, сколько весит скомпилированный код?
			</div>
	
	
							
		<div id="vote_area_comment_111989" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111989,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111989" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111989,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">25 июня 2013, 18:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111989" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111989,111984); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_111995">
		
		
<div id="comment_id_111995" class="comment not-admin ">
	<a name="comment111995"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_111995" class="content">
			
			<blockquote>Но это чуть меньший ужас</blockquote>Хоть что то приятное… <br>
<br>
<blockquote>и много копипасты</blockquote>я и так старался ее избегать.<br>
<br>
<blockquote>И все же, сколько весит скомпилированный код?</blockquote>Не совсем понятно как это узнать. Если вызвать все пользовательские функции, то много наверное. если только некоторые то не очень.<br>
<br>
<blockquote>слишком большая область видимости некоторых вещей («системных» функций в частности)</blockquote>Так а куда их девать? Прототипы этих функций просто убрать из LCD.h?<br>
<br>
<blockquote>Это надо делать макросом вида #define PORT_MASK...</blockquote>Так как решить, когда макросом когда нет?<br>
<br>
<blockquote>да и вообще, все повторяющееся следует выносить в макрос или функцию</blockquote>Что является критерием куда именно выносить, в макрос или функцию?
			</div>
	
	
							
		<div id="vote_area_comment_111995" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(111995,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_111995" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(111995,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">25 июня 2013, 21:45</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111995" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(111995,111989); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112007">
		
		
<div id="comment_id_112007" class="comment not-admin ">
	<a name="comment112007"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112007" class="content">
			
			 <a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment111947" rel="nofollow">Здесь уже предлагали</a> глянуть исходники ядра Linux для примеров хорошего кода.<br>
 В свою очередь, с&nbsp;тех времён, когда я&nbsp;писал под <a href="https://en.wikipedia.org/wiki/X_Window_System" rel="nofollow">X&nbsp;Window System</a>, у&nbsp;меня остались весьма приятные воспоминания об этой системе с&nbsp;точки зрения программиста. В&nbsp;частности, я&nbsp;довольно плотно занимался <a href="https://en.wikipedia.org/wiki/Xlib" rel="nofollow">Xlib</a>, <a href="https://en.wikipedia.org/wiki/X_Athena_Widgets" rel="nofollow">Xaw</a>, <a href="https://en.wikipedia.org/wiki/Motif_(widget_toolkit)" rel="nofollow">X&nbsp;Motif</a>. Код&nbsp;написан на&nbsp;чистом&nbsp;C, но&nbsp;таким хорошо структурированным образом, что реализуются «три&nbsp;кита» объектно-ориентированного программирования: инкапсуляция, наследование и&nbsp;полиморфизм. То, что как раз хорошо подходит для&nbsp;событийного, иерархического, оконного, графического интерфейса и, как&nbsp;правило, не&nbsp;мыслится без применения&nbsp;C++.<br>
 Другое дело, что это мало что даст&nbsp;— просто пялиться в&nbsp;пусть даже хороший код без понимания, для каких целей и&nbsp;как это должно работать. Примеров хорошего кода для микроконтроллеров я, к&nbsp;сожалению, посоветовать не&nbsp;могу.
			</div>
	
	
							
		<div id="vote_area_comment_112007" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112007,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112007" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112007,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/EW1UA/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(7).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/EW1UA/">EW1UA</a></li>
		<li class="date">26 июня 2013, 00:56</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112007" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112007,111995); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112020">
		
		
<div id="comment_id_112020" class="comment not-admin ">
	<a name="comment112020"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112020" class="content">
			
			<blockquote>Не совсем понятно как это узнать. Если вызвать все пользовательские функции, то много наверное. если только некоторые то не очень.</blockquote>Хотя бы скажи сколько скомпилированный пример весит (после компиляции компилятор выводит статистику, сколько какой памяти выюзано). Подробный список по функциям есть в .map-файле, правда в малочитабельном виде.<br>
<blockquote>Так а куда их девать? Прототипы этих функций просто убрать из LCD.h?</blockquote>Да. Если начнет жаловаться «не найдено» — нужно перенести их в начало .c-файла или поместить в начале .c-файла их объявления (forward declarations). К тому же, неплохо бы переименовать функции так, чтобы было понятней, что они делают.<br>
<blockquote>Так как решить, когда макросом когда нет?</blockquote>Это здоровенное выражение, вычисляющееся константой на этапе компиляции и многократно используемое в тексте. Такие вещи следует объявлять именованной константой. В С ее роль обычно выполняют макросы или enum'ы.<br>
<blockquote>Что является критерием куда именно выносить, в макрос или функцию?</blockquote>А вот это уже не столь простой вопрос. Здесь нужно понимать чем различаются функции и макрофункции (макросы), а также достоинства и недостатки обоих.<br>
В целом, выносить лучше в функцию, но некоторые вещи из-за требований оптимизации приходится делать макросами. В принципе, вместо макросов можно использовать inline-функции, но компилятор может счесть что он умнее и отказаться их разворачивать (иногда он прав, иногда ошибается). В С++ практически исключительно используются inline-функции, в С часто применяются макрофункции.
			</div>
	
	
							
		<div id="vote_area_comment_112020" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112020,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112020" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112020,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">26 июня 2013, 10:16</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112020" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112020,111995); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112022">
		
		
<div id="comment_id_112022" class="comment not-admin ">
	<a name="comment112022"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112022" class="content">
			
			<blockquote>Хотя бы скажи сколько скомпилированный пример весит</blockquote>полтора кило.<br>
<blockquote>Да. Если начнет жаловаться «не найдено»</blockquote>Как раз таки жалуется. Перенесу их вечером в *.с файл.
			</div>
	
	
							
		<div id="vote_area_comment_112022" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112022,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112022" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112022,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">26 июня 2013, 10:31</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112022" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112022,112020); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112023">
		
		
<div id="comment_id_112023" class="comment not-admin ">
	<a name="comment112023"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112023" class="content">
			
			<blockquote>полтора кило.</blockquote>Много.<br>
<blockquote>Как раз таки жалуется. Перенесу их вечером в *.с файл.</blockquote>Конечно жалуется, функция должны быть объявлена до использования. Перенеси объявления из .h файла в .c файл, размести непосредственно перед первой функцией.
			</div>
	
	
							
		<div id="vote_area_comment_112023" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112023,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112023" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112023,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
		<li class="date">26 июня 2013, 10:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112023" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112023,112022); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_112029">
		
		
<div id="comment_id_112029" class="comment not-admin ">
	<a name="comment112029"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112029" class="content">
			
			Пользуюсь библиотечкой, которую как то нашел в инете. Все хорошо, но в протеусе в упор не запускается, либо запускается с косяками. А как с вашей либой?
			</div>
	
	
							
		<div id="vote_area_comment_112029" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112029,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112029" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112029,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Signaller/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(10).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Signaller/">Signaller</a></li>
		<li class="date">26 июня 2013, 11:14</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112029" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112030">
		
		
<div id="comment_id_112030" class="comment not-admin ">
	<a name="comment112030"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112030" class="content">
			
			Исходя из рекомендаций выше, я хочу на днях ее модернезировать и улучшить. Потом выложу сюда же обновленный вариант. Скачайте и попробуйте. Я с протеусом вообще не работаю. Даже не знаю что сказать.
			</div>
	
	
							
		<div id="vote_area_comment_112030" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112030,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112030" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112030,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">26 июня 2013, 11:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112030" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112030,112029); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112036">
		
		
<div id="comment_id_112036" class="comment not-admin ">
	<a name="comment112036"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112036" class="content">
			
			OK, попробую.
			</div>
	
	
							
		<div id="vote_area_comment_112036" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112036,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112036" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112036,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Signaller/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(10).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Signaller/">Signaller</a></li>
		<li class="date">26 июня 2013, 13:19</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112036" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112036,112030); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112037">
		
		
<div id="comment_id_112037" class="comment not-admin ">
	<a name="comment112037"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112037" class="content">
			
			Кстати когда попробуешь, напиши что получилось, интересно просто. Я когда выложу обновленную, напишу тебе.
			</div>
	
	
							
		<div id="vote_area_comment_112037" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112037,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112037" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112037,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">26 июня 2013, 13:47</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112037" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112037,112036); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_112074">
		
		
<div id="comment_id_112074" class="comment not-admin ">
	<a name="comment112074"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112074" class="content">
			
			Вот в этой теме в комментах приведены ссылки на разные варианты таких библиотек, в том числе для C++: <a href="http://we.easyelectronics.ru/AVR/hd44780-biblioteka-dlya-avr-gcc.html" rel="nofollow">HD44780. Библиотека для avr-gcc</a>.<br>
<br>
Мой вариант: <a href="https://mysvn.ru/avr/examples/HD44780/LCD.cpp" rel="nofollow">LCD.cpp</a> и <a href="https://mysvn.ru/avr/examples/HD44780/LCD.h" rel="nofollow">LCD.h</a>.
			</div>
	
	
							
		<div id="vote_area_comment_112074" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112074,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112074" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112074,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/uni/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(3).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/uni/">uni</a></li>
		<li class="date">27 июня 2013, 03:14</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112074" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112080">
		
		
<div id="comment_id_112080" class="comment not-admin ">
	<a name="comment112080"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112080" class="content">
			
			Твоя библиотека просто зверь!
			</div>
	
	
							
		<div id="vote_area_comment_112080" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112080,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112080" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112080,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/Papandopala/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/Papandopala/">Papandopala</a></li>
		<li class="date">27 июня 2013, 08:34</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112080" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112080,112074); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112081">
		
		
<div id="comment_id_112081" class="comment not-admin ">
	<a name="comment112081"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112081" class="content">
			
			Под отладчиком она не так страшна. В Proteus'е можно прогнать основной функционал, кроме ожидания бита при чтении данных из индикатора, вроде это не работало и нужно отключать, если там моделируешь. Она компилируется для IAR и GCC, поэтому там есть некоторые излишества с этим связанные. Может быть при переходе на 4.7 версию удастся привести всё к более привычному виду.<br>
<br>
Эта ссылка из тестового проекта, кстати: <a href="https://mysvn.ru/avr/examples/HD44780/" rel="nofollow">HD44780</a>. Проект для IAR 6.10 находится в /iar6/, проект для Proteus'а в корне. Там функционал — это анимация, когда изображение из невидимой области переходит в видимую и отображение версии прошивки (эта часть уже немного устарела, т.к. это можно сейчас сделать проще).<br>
<br>
Библиотека ещё до конца не доделана, там нужно прибраться в коде и заголовочниках, да и примеров добавить не мешало бы.
			</div>
	
	
							
		<div id="vote_area_comment_112081" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112081,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112081" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112081,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/uni/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(3).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/uni/">uni</a></li>
		<li class="date">27 июня 2013, 08:42</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112081" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112081,112080); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112108">
		
		
<div id="comment_id_112108" class="comment not-admin ">
	<a name="comment112108"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112108" class="content">
			
			Сделал небольшие правки проекта <a href="https://mysvn.ru/avr/examples/HD44780/" rel="nofollow">HD44780</a>. Makefile настроен так, чтобы не включать код функций, которые не используются в программе, поэтому на основе этой статистики нельзя делать какие-то предположения и сравнения.<br>
<br>
<pre class="prettyprint"><code><span class="pln">AVR </span><span class="typ">Memory</span><span class="pln"> </span><span class="typ">Usage</span><span class="pln"><br></span><span class="pun">----------------</span><span class="pln"><br></span><span class="typ">Device</span><span class="pun">:</span><span class="pln"> atmega16<br></span><span class="typ">Program</span><span class="pun">:</span><span class="pln"> &nbsp; &nbsp;</span><span class="lit">1684</span><span class="pln"> bytes </span><span class="pun">(</span><span class="lit">10.3</span><span class="pun">%</span><span class="pln"> </span><span class="typ">Full</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">(.</span><span class="pln">text </span><span class="pun">+</span><span class="pln"> </span><span class="pun">.</span><span class="pln">data </span><span class="pun">+</span><span class="pln"> </span><span class="pun">.</span><span class="pln">bootloader</span><span class="pun">)</span><span class="pln"><br></span><span class="typ">Data</span><span class="pun">:</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="lit">9</span><span class="pln"> bytes </span><span class="pun">(</span><span class="lit">0.9</span><span class="pun">%</span><span class="pln"> </span><span class="typ">Full</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">(.</span><span class="pln">data </span><span class="pun">+</span><span class="pln"> </span><span class="pun">.</span><span class="pln">bss </span><span class="pun">+</span><span class="pln"> </span><span class="pun">.</span><span class="pln">noinit</span><span class="pun">)</span></code></pre><br>
Вот так он работает в Proteus 7.7 SP2.<br>
<br>
<img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/e93a3b.png" title="Тестовый проект HD44780" alt="Тестовый проект HD44780"><br>
<br>
Основной код примера (без инициализации и прочего, все строки во флеш находятся). Строка версии немного съехала (не вошла), т.к. до этого я по другому её формировал. Анимация у меня в железе нормально происходит, а в Proteus делается наоборот почему-то. Объяснения этому пока не нашёл.<br>
<br>
<pre class="prettyprint"><code><span class="com">// -=[ Постоянные во флеш-памяти ]=-</span><span class="pln"><br><br></span><span class="com">// Описание заставки</span><span class="pln"><br>FLASHSTR_DECLARE</span><span class="pun">(</span><span class="pln"> </span><span class="kwd">char</span><span class="pun">,</span><span class="pln"> frmSplashString</span><span class="pun">,</span><span class="pln"><br></span><span class="com">#ifdef __GNUC__</span><span class="pln"><br></span><span class="str">" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HD44780 Demo GCC\n"</span><span class="pln"><br></span><span class="com">#elif defined __ICCAVR__</span><span class="pln"><br></span><span class="str">" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HD44780 Demo IAR\n"</span><span class="pln"><br></span><span class="com">#endif</span><span class="pln"><br></span><span class="str">" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Author: uni &nbsp; &nbsp; "</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br></span><span class="com">// Статическая информация на экране</span><span class="pln"><br>FLASHSTR_DECLARE</span><span class="pun">(</span><span class="pln"> </span><span class="kwd">char</span><span class="pun">,</span><span class="pln"> frmString</span><span class="pun">,</span><span class="pln"><br></span><span class="str">"Ver: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\n"</span><span class="pln"><br></span><span class="str">" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br><br></span><span class="com">// -=[ Переменные в ОЗУ ]=-</span><span class="pln"><br><br><br></span><span class="com">/***********************<br>* &nbsp;Р Е А Л И З А Ц И Я<br>* &nbsp;~~~~~~~~~~~~~~~~~~~<br>************************/</span><span class="pln"><br><br><br></span><span class="com">/**<br>&nbsp;* Главный (основной) поток программы<br>&nbsp;*/</span><span class="pln"><br>HRESULT CMCU</span><span class="pun">::</span><span class="typ">MainThreadProcedure</span><span class="pun">(){</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Вывод заставки</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">WriteString</span><span class="pun">(</span><span class="pln"> frmSplashString</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; </span><span class="com">// Анимация заставки</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; uint8_t cnt </span><span class="pun">=</span><span class="pln"> </span><span class="lit">16</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">ShiftLeft</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _delay_ms</span><span class="pun">(</span><span class="pln"> </span><span class="lit">250</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> cnt</span><span class="pun">--</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; _delay_ms</span><span class="pun">(</span><span class="pln"> </span><span class="lit">3000UL</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br>&nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">Clear</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">Home</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">WriteString</span><span class="pun">(</span><span class="pln"> frmString</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Вывод версии</span><span class="pln"><br>&nbsp; &nbsp; CLCD</span><span class="pun">::</span><span class="typ">WriteString</span><span class="pun">(</span><span class="pln"> </span><span class="typ">CVersion</span><span class="pun">::</span><span class="typ">GetBuildDateString</span><span class="pun">(),</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Разрешаем прерывания</span><span class="pln"><br>&nbsp; &nbsp; __enable_interrupt</span><span class="pun">();</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br><br><br>&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">true</span><span class="pln"> </span><span class="pun">);</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Все проверки прошли успешно, объект в рабочем состоянии</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="kwd">return</span><span class="pln"> NO_ERROR</span><span class="pun">;</span><span class="pln"><br><br></span><span class="pun">}</span></code></pre>
			</div>
	
	
							
		<div id="vote_area_comment_112108" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112108,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112108" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112108,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/uni/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(3).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/uni/">uni</a></li>
		<li class="date">27 июня 2013, 17:10</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112108" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112108,112080); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		    	
			</div></div></div>				
		<div class="comment-wrapper" id="comment_wrapper_id_112338">
		
		
<div id="comment_id_112338" class="comment not-admin ">
	<a name="comment112338"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112338" class="content">
			
			вброшу.<br>
<a href="https://github.com/scaldov/litenkjerne/blob/master/hd44780.c" rel="nofollow">вот как надо делать</a><br>
собсно, там прерывания 500 раз в сек, из обработчика вызывается<br>
<pre class="prettyprint"><code><span class="kwd">if</span><span class="pun">(</span><span class="pln">hd44780_flags </span><span class="pun">&amp;</span><span class="pln"> HD44780_TX</span><span class="pun">)</span><span class="pln"> hd44780_tx_proc</span><span class="pun">();</span></code></pre><br>
500 символов в сек — это примерно 15 FPS, что довольно неплохо.<br>
и никаких delay()
			</div>
	
	
							
		<div id="vote_area_comment_112338" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112338,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112338" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112338,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/scaldov/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/scaldov/">scaldov</a></li>
		<li class="date">30 июня 2013, 00:32</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112338" class="comment-link"></a></li>	
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112384">
		
		
<div id="comment_id_112384" class="comment not-admin ">
	<a name="comment112384"></a>
	
	
	<div class="folding"></div>
	
	
	<div id="comment_content_id_112384" class="content">
			
			А для дисплея 20х4/40х2?<br>
А зачем тогда krn_sleep(1)?<br>
Ваш код при высокой нагрузке будет сильнее тормозить выполнение.
			</div>
	
	
							
		<div id="vote_area_comment_112384" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112384,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112384" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112384,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/angel5a/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/angel5a/">angel5a</a></li>
		<li class="date">01 июля 2013, 10:30</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112384" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112384,112338); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
		 
				
		<div class="comment-wrapper" id="comment_wrapper_id_112645">
		
		
<div id="comment_id_112645" class="comment not-admin ">
	<a name="comment112645"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112645" class="content">
			
			это слип на 1 тик, т.е. 1/500 сек.<br>
тормозов от этого нет, этот слип внутри ядра решедулит очередь тредов и передаёт управление следующему треду на 1 тик.
			</div>
	
	
							
		<div id="vote_area_comment_112645" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112645,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112645" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112645,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/scaldov/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/scaldov/">scaldov</a></li>
		<li class="date">04 июля 2013, 13:02</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112645" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112645,112384); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
									
				
					</div>
				
		<div class="comment-wrapper" id="comment_wrapper_id_112646">
		
		
<div id="comment_id_112646" class="comment not-admin ">
	<a name="comment112646"></a>
	
	
	<div class="folding" style="display: none;"></div>
	
	
	<div id="comment_content_id_112646" class="content">
			
			да и потом, вывод в дисплей весь внутри обработчика прерывания, там вообще никаких слипов нет.
			</div>
	
	
							
		<div id="vote_area_comment_112646" class="voting  guest     ">
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="plus" onclick="return ls.vote.vote(112646,this,1,&#39;comment&#39;);"></a>
			<span id="vote_total_comment_112646" class="total">0</span>
			<a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" class="minus" onclick="return ls.vote.vote(112646,this,-1,&#39;comment&#39;);"></a>
		</div>
		
	
	<ul class="info">
		<li class="avatar"><a href="http://we.easyelectronics.ru/profile/scaldov/"><img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/avatar_24x24(1).jpg" alt="avatar"></a></li>
		<li class="username"><a href="http://we.easyelectronics.ru/profile/scaldov/">scaldov</a></li>
		<li class="date">04 июля 2013, 13:04</li>
				<li><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#comment112646" class="comment-link"></a></li>	
					<li class="goto-comment-parent"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" onclick="ls.comments.goToParentComment(112646,112384); return false;" title="Ответ на">↑</a></li>
				<li class="goto-comment-child"><a href="http://we.easyelectronics.ru/AVR/biblioteka-na-si-dlya-lcd-displeev-na-baze-processora-hd44780-dlya-mikrokontrollerov-avr.html#" title="Обратно к ответу">↓</a></li>
								
	</ul>
	
</div>		
							</div></div></div>    
			</div>				
	

			Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
		


	


			
			</div><!-- /content-inner -->
		</div><!-- /content -->

					<div id="sidebar">
										<div class="block stream" id="block_stream">
	<h2>Прямой эфир</h2>
	
	
	<ul class="switcher">						
		<li id="block_stream_item_comment" class="active">Комментарии</li>
		<li id="block_stream_item_topic">Публикации</li>
		
		
	</ul>					
	
	
	<div class="block-content" id="block_stream_content">
		<ul class="list">
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/Androniy/" class="user">Androniy</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/electro-and-pc/ft232-kak-podruzhit-1-wire-s-kompom.html#comment125006" class="topic-title">FT232: Как подружить 1-wire с компом</a>
			<span>33</span> →
			<a href="http://we.easyelectronics.ru/blog/electro-and-pc/" class="blog-title">Связь железа с компьютером.</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/Vga/" class="user">Vga</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/msp430/ne-tak-strashen-makefile.html#comment125005" class="topic-title">Не так страшен makefile</a>
			<span>35</span> →
			<a href="http://we.easyelectronics.ru/blog/msp430/" class="blog-title">MSP430</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/wowa/" class="user">wowa</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/STM32/stm32-nucleo.html#comment124998" class="topic-title">STM32 Nucleo</a>
			<span>80</span> →
			<a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/sasha_tvo/" class="user">sasha_tvo</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/STM32/prostoy-proekt-na-stm32f030f4p6-cocoox-ide-perenos-programmy-s-atmega48.html#comment124975" class="topic-title">Простой проект на STM32F030F4P6  (CoCoox IDE) перенос программы с ATMEGA48</a>
			<span>13</span> →
			<a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/evsi/" class="user">evsi</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/HomeTech/stavim-process-na-plenochnom-fotoreziste-glava-iii-sobstvenno-process.html#comment124969" class="topic-title">"Ставим" процесс на пленочном фоторезисте ( глава III, собственно процесс)</a>
			<span>185</span> →
			<a href="http://we.easyelectronics.ru/blog/HomeTech/" class="blog-title">Технологии</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/JeikiS/" class="user">JeikiS</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/GYUR22/max13487-part2.html#comment124959" class="topic-title">MAX13487 part2</a>
			<span>12</span> →
			<a href="http://we.easyelectronics.ru/my/GYUR22/" class="blog-title">Блог им. GYUR22</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/BarsMonster/" class="user">BarsMonster</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/Tools/laboratornyy-programmiruemyy-lineynyy-blok-pitaniya-uniontest-korad-ut3005ep-i-ego-kalibrovka-upravlenie.html#comment124936" class="topic-title">Лабораторный программируемый линейный блок питания UnionTest/KORAD UT3005EP и его калибровка/управление</a>
			<span>14</span> →
			<a href="http://we.easyelectronics.ru/blog/Tools/" class="blog-title">Инструмент</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/Victor/" class="user">Victor</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/evsi/prodolzhaetsya-napolnenie-bloga-i-magazina.html#comment124928" class="topic-title">продолжается наполнение блога и магазина</a>
			<span>37</span> →
			<a href="http://we.easyelectronics.ru/my/evsi/" class="blog-title">Блог им. evsi</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/artjom/" class="user">artjom</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/AVR/avrasm-primer-ispolzovaniya-dispetchera-zadach-rtos-20-ustanovka-i-nastroyka.html#comment124873" class="topic-title">AVRASM: Пример использования "Диспетчера задач RTOS 2.0" (установка и настройка)</a>
			<span>41</span> →
			<a href="http://we.easyelectronics.ru/blog/AVR/" class="blog-title">AVR</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/evsi/" class="user">evsi</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/AVR/avrasm-dispetcher-zadach-rtos-20-psevdo-kooperativnaya-os.html#comment124808" class="topic-title">AVRASM: Диспетчер задач RTOS 2.0 (псевдо кооперативная ОС)</a>
			<span>81</span> →
			<a href="http://we.easyelectronics.ru/blog/AVR/" class="blog-title">AVR</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/artjom/" class="user">artjom</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/STM32/usb-virtual-com-na-stm32l---keil-project.html#comment124802" class="topic-title">USB Virtual COM на STM32L - Keil Project</a>
			<span>11</span> →
			<a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/kalik/" class="user">kalik</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/electro-and-pc/qthread-qserialport-krutim-v-otdelnom-potoke-rabotu-s-som-portom.html#comment124801" class="topic-title">QThread + QSerialPort! Крутим в отдельном потоке работу с СOM портом.</a>
			<span>16</span> →
			<a href="http://we.easyelectronics.ru/blog/electro-and-pc/" class="blog-title">Связь железа с компьютером.</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/kalik/" class="user">kalik</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/kalik/zapustim-musorovoz-po-ukraine.html#comment124777" class="topic-title">Запустим мусоровоз по Украине=))</a>
			<span>28</span> →
			<a href="http://we.easyelectronics.ru/my/kalik/" class="blog-title">Блог им. kalik</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/JeikiS/" class="user">JeikiS</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/Sicorski/organizuetsya-novyy-musorovoz.html#comment124745" class="topic-title">Организуется новый мусоровоз</a>
			<span>109</span> →
			<a href="http://we.easyelectronics.ru/my/Sicorski/" class="blog-title">Блог им. Sicorski</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/steel_ne/" class="user">steel_ne</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/Fahivec/l297-podvodnyy-kamen.html#comment124702" class="topic-title">L297. Подводный камень.</a>
			<span>17</span> →
			<a href="http://we.easyelectronics.ru/my/Fahivec/" class="blog-title">Блог им. Fahivec</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/evsi/" class="user">evsi</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/habl/c-s-polnogo-nulya-spustya-mesyac.html#comment124642" class="topic-title">C++ с полного нуля спустя месяц</a>
			<span>52</span> →
			<a href="http://we.easyelectronics.ru/my/habl/" class="blog-title">Блог им. habl</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/drvlas/" class="user">drvlas</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/msp430/ispolzovanie-sredy-razrabotki-codeblocks-dlya-programmirovaniya-launchpad.html#comment124583" class="topic-title">Использование среды разработки Code::Blocks для программирования Launchpad</a>
			<span>67</span> →
			<a href="http://we.easyelectronics.ru/blog/msp430/" class="blog-title">MSP430</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/Beowulf/" class="user">Beowulf</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/perry_moshkin/vot-eto-ya-ponimayu-maketka.html#comment124545" class="topic-title">Вот это я понимаю макетка!</a>
			<span>99</span> →
			<a href="http://we.easyelectronics.ru/my/perry_moshkin/" class="blog-title">Блог им. perry_moshkin</a>
		</li>
									
		<li class="even">
			<a href="http://we.easyelectronics.ru/profile/antonluba/" class="user">antonluba</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/Fahivec/ocherednoy--lufa-mkii.html#comment124440" class="topic-title">Очередной  LUFA mkII</a>
			<span>4</span> →
			<a href="http://we.easyelectronics.ru/my/Fahivec/" class="blog-title">Блог им. Fahivec</a>
		</li>
									
		<li>
			<a href="http://we.easyelectronics.ru/profile/Den1s/" class="user">Den1s</a> →
			<span class="stream-comment-icon"></span>
			<a href="http://we.easyelectronics.ru/Den1s/robot-na-shassi-rover5.html#comment124415" class="topic-title">Робот на шасси Rover5</a>
			<span>13</span> →
			<a href="http://we.easyelectronics.ru/my/Den1s/" class="blog-title">Блог им. Den1s</a>
		</li>
	</ul>


<div class="bottom">
	<a href="http://we.easyelectronics.ru/comments/">Весь эфир</a> | <a href="http://we.easyelectronics.ru/rss/allcomments/">RSS</a>
</div>
	</div>
</div>


															<div class="block tags">
	<ul class="cloud">						
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/Altera/">Altera</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/arduino/">arduino</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/ARM/">ARM</a></li>	
					<li><a class="w10" rel="tag" href="http://we.easyelectronics.ru/tag/AVR/">AVR</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/avr-gcc/">avr-gcc</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/C%2B%2B/">C++</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/Cortex-M3/">Cortex-M3</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/DIY/">DIY</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/enc28j60/">enc28j60</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/ethernet/">ethernet</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/gcc/">gcc</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/I2C/">I2C</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/IAR/">IAR</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/KEIL/">KEIL</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/LaunchPad/">LaunchPad</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/LCD/">LCD</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/led/">led</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/linux/">linux</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/LPC1343/">LPC1343</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/LPCXpresso/">LPCXpresso</a></li>	
					<li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/MSP430/">MSP430</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/nxp/">nxp</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/PCB/">PCB</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/PIC/">PIC</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/pinboard2/">pinboard2</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/RS-485/">RS-485</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/RTOS/">RTOS</a></li>	
					<li><a class="w10" rel="tag" href="http://we.easyelectronics.ru/tag/STM32/">STM32</a></li>	
					<li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/STM8/">STM8</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/STM8L/">STM8L</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/TI/">TI</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/UART/">UART</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/USB/">USB</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC/">алгоритм</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80/">ассемблер</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%90%D0%A6%D0%9F/">АЦП</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B1%D0%BB%D0%BE%D0%BA%20%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F/">блок питания</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81/">вопрос</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D1%8C%D0%BA%D0%B0/">деталька</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B8%D0%B4%D0%B5%D1%8F/">идея</a></li>	
					<li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82/">инструмент</a></li>	
					<li><a class="w7" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D1%81/">конкурс</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D1%812/">конкурс2</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9B%D0%A3%D0%A2/">ЛУТ</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B/">микроконтроллеры</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D0%BC/">начинающим</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BE%D0%B1%D0%B7%D0%BE%D1%80/">обзор</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">Отладочная плата</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B0%D1%8F%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA/">паяльник</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4/">перевод</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">печатная плата</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">плата</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9F%D0%9B%D0%98%D0%A1/">ПЛИС</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BE%D0%B4%D0%B5%D0%BB%D0%BA%D0%B8/">поделки</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8/">покупки</a></li>	
					<li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80/">программатор</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/">программирование</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%80%D0%BE%D0%B1%D0%BE%D1%82/">робот</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4/">светодиод</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D0%B9%20%D1%81%D0%B0%D0%BC/">Сделай сам</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D0%BE%D1%84%D1%82/">софт</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D1%85%D0%B5%D0%BC%D0%B0/">схема</a></li>	
					<li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D1%85%D0%B5%D0%BC%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0/">схемотехника</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8/">Технологии</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%83%D0%BC%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC/">умный дом</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%84%D0%BE%D1%82%D0%BE%D1%80%D0%B5%D0%B7%D0%B8%D1%81%D1%82/">фоторезист</a></li>	
					<li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%85%D0%B0%D0%BB%D1%8F%D0%B2%D0%B0/">халява</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%85%D1%80%D0%B5%D0%BD%D1%8C/">хрень</a></li>	
					<li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%A7%D0%B0%D1%81%D1%8B/">Часы</a></li>	
					<li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%8E%D0%BC%D0%BE%D1%80/">юмор</a></li>	
			</ul>
</div>
															<div class="block blogs" id="block_blogs">
	<h2>Блоги</h2>
	
	
	<ul class="switcher">
		<li id="block_blogs_item_top" class="active">Топ</li>
			</ul>
	
	
	<div class="block-content" id="block_blogs_content">
		<ul class="list">
			<li>
			<span class="rating">37.52</span>
			<a href="http://we.easyelectronics.ru/blog/AVR/">AVR</a> 
					</li>
			<li>
			<span class="rating">36.19</span>
			<a href="http://we.easyelectronics.ru/blog/STM8/">STM8</a> 
					</li>
			<li>
			<span class="rating">28.22</span>
			<a href="http://we.easyelectronics.ru/blog/JunkBox/">Мусоровоз</a> 
			<img src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/lock.png" alt="[x]" title="Закрытый блог">		</li>
			<li>
			<span class="rating">23.34</span>
			<a href="http://we.easyelectronics.ru/blog/STM32/">STM32</a> 
					</li>
			<li>
			<span class="rating">21.52</span>
			<a href="http://we.easyelectronics.ru/blog/part/">Деталька</a> 
					</li>
			<li>
			<span class="rating">18.67</span>
			<a href="http://we.easyelectronics.ru/blog/electro-and-pc/">Связь железа с компьютером.</a> 
					</li>
			<li>
			<span class="rating">17.75</span>
			<a href="http://we.easyelectronics.ru/blog/smarthouse/">Умный дом</a> 
					</li>
			<li>
			<span class="rating">17.13</span>
			<a href="http://we.easyelectronics.ru/blog/msp430/">MSP430</a> 
					</li>
			<li>
			<span class="rating">16.42</span>
			<a href="http://we.easyelectronics.ru/blog/Shematech/">Схемотехника</a> 
					</li>
			<li>
			<span class="rating">14.79</span>
			<a href="http://we.easyelectronics.ru/blog/LPC/">LPC1xxx</a> 
					</li>
	</ul>				
	</div>

	
	<div class="bottom">
		<a href="http://we.easyelectronics.ru/blogs/">Все блоги</a>
	</div>
</div>

									</div>			</div><!-- /wrapper -->

	<div id="footer">
		<div id="footer-inner">
			<div class="right">© Powered by <a href="http://livestreetcms.ru/">LiveStreet CMS</a></div>
			Design by — <a href="http://www.xeoart.com/">Студия XeoArt</a>
			<img border="0" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/xeoart.gif">
						
		</div>
	</div>

</div><!-- /container -->




<!-- Yandex.Metrika counter -->
<div style="display:none;"><script type="text/javascript">
(function(w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter4558804 = new Ya.Metrika({id:4558804,
                    clickmap:true,
                    trackLinks:true});
        }
        catch(e) { }
    });
})(window, "yandex_metrika_callbacks");
</script></div>
<script src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/watch.js" type="text/javascript" defer="defer"></script>
<noscript>&lt;div&gt;&lt;img src="//mc.yandex.ru/watch/4558804" style="position:absolute; left:-9999px;" alt="" /&gt;&lt;/div&gt;</noscript>
<!-- /Yandex.Metrika counter -->


<iframe name="oauth2relay893191889" id="oauth2relay893191889" src="./Библиотека на СИ, для LCD дисплеев на базе процессора HD44780, для микроконтроллеров AVR   AVR   Сообщество EasyElectronics.ru_files/postmessageRelay.htm" tabindex="-1" style="width: 1px; height: 1px; position: absolute; top: -100px;"></iframe></body></html>